screen lock 无密码登录

16 篇文章 0 订阅
6 篇文章 0 订阅

 screen 是一款多窗口模拟软件,可以设置lock功能将session锁住,但是这个可以绕过密码检查机制,直接实现无密码登录, 具体过程记录如下:

1. 首先根据screen lock过程中的提示,找到这个提示的地址, 提示如下,要求输入密码。

Screen used by root <root>.
Password:

这个字符在rodata端可以通过如下命令,把所有的字符都写到一个文件里,然后在这里面找:

readelf -p 15 /usr/bin/screen > string

然后发现如下字段

  [  4f30]  Screen used by %s <%s>.
Password:^G

这个4f30是相对rodata的偏移,需要知道rodata的基地址, 可以通过如下命令:

readelf  -S /usr/bin/screen > sections

找到rodata端的基地址,然后再相加得到最终地址: 0x44d170

2. 在代码段中找到该string的引用

首先把screen代码反汇编出来:

 objdump -S /usr/bin/screen > disscreen

然后在反汇编出来的文件里面搜索0x44d170, 得到如下代码片段:

  427aa7:       4d 89 e0                mov    %r12,%r8
  427aaa:       b9 70 d1 44 00          mov    $0x44d170,%ecx
  427aaf:       ba c8 00 00 00          mov    $0xc8,%edx
  427ab4:       be 01 00 00 00          mov    $0x1,%esi
  427ab9:       48 89 ef                mov    %rbp,%rdi
  427abc:       4c 8d ac 24 20 02 00    lea    0x220(%rsp),%r13

  427ac3:       00
  427ac4:       41 bf 92 a5 44 00       mov    $0x44a592,%r15d
  427aca:       4c 8b 08                mov    (%rax),%r9
  427acd:       31 c0                   xor    %eax,%eax
  427acf:       e8 3c b7 fd ff          callq  403210 <__sprintf_chk@plt>
  427ad4:       e8 a7 b5 fd ff          callq  403080 <__errno_location@plt>
  427ad9:       49 89 c6                mov    %rax,%r14
  427adc:       e9 91 00 00 00          jmpq   427b72 <getlogin+0x87f2>
  427ae1:       0f 1f 80 00 00 00 00    nopl   0x0(%rax)
  427ae8:       48 8b 15 61 fd 23 00    mov    0x23fd61(%rip),%rdx        # 667850 <stdout+0xa7a0>
  427aef:       4c 89 ff                mov    %r15,%rdi
  427af2:       b9 05 00 00 00          mov    $0x5,%ecx
  427af7:       48 89 d6                mov    %rdx,%rsi
  427afa:       48 8d 42 05             lea    0x5(%rdx),%rax
  427afe:       f3 a6                   repz cmpsb %es:(%rdi),%ds:(%rsi)
  427b00:       48 8b bc 24 20 02 00    mov    0x220(%rsp),%rdi
  427b07:       00
  427b08:       40 0f 97 c6             seta   %sil
  427b0c:       0f 92 c1                setb   %cl
  427b0f:       40 38 ce                cmp    %cl,%sil
  427b12:       be 03 00 00 00          mov    $0x3,%esi
  427b17:       48 0f 44 d0             cmove  %rax,%rdx
  427b1b:       e8 10 b2 fd ff          callq  402d30 <pam_set_item@plt>
  427b20:       85 c0                   test   %eax,%eax
  427b22:       0f 85 a0 00 00 00       jne    427bc8 <getlogin+0x8848>
  427b28:       48 8b bc 24 20 02 00    mov    0x220(%rsp),%rdi
  427b2f:       00
  427b30:       31 f6                   xor    %esi,%esi
  427b32:       e8 f9 b7 fd ff          callq  403330 <pam_authenticate@plt>
  427b37:       48 8b bc 24 20 02 00    mov    0x220(%rsp),%rdi

在上面红色部分即pam认证部分,只要这部分返回值正确即可,可以在这里下个断点另$RAX = 0即可

参考:

https://blog.plenz.com/2013-03/locking-a-screen-session.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值